Windows 10.
версия python 3,11
Писал программу (игру) с книги "Python для детей" .Выдает ошибку Tkinter.TclError. Я препробовал многое , но мои познания в питоне изсякли .Помогите пожалусйта. И объясните в чем моя ошибка
версия python 3,11
Писал программу (игру) с книги "Python для детей" .Выдает ошибку Tkinter.TclError. Я препробовал многое , но мои познания в питоне изсякли .Помогите пожалусйта. И объясните в чем моя ошибка
Код:
self.y = -3
self.canvas_height = self.canvas.winfo_height()
self.canvas_width = self.canvas_wedth = self.canvas.winfo_width()
# функция попадания мяча по ракетке
def hit_paddle(self,pos):
padlle_pos=self.canvas.coords(self.paddle.id)
if pos[2]>=padlle_pos[0] and pos[0]<=paddle_pos[2]:
if pos[3]>=paddle_pos[1] and pos[3]<=padlle_pos[3]:
return True
return False
def draw(self):
self.canvas.move(self.id, self.x, self.y)
pos = self.canvas.coords(self.id)
if pos[1] <= 0:
self.y = 3
if pos[3] >= self.canvas_height:
self.y = -3
if self.hit_paddle(pos)==True:
self.y=-3
if pos[0] <= 0:
self.x = 3
if pos[2] >= self.canvas_wedth:
self.x = -3
#создание класса ракетка
class Padlle:
def __init__(self,canvas,color):
self.canvas=canvas
self.id=canvas.create_rectangle(0,0,100,10,fill=color)
self.canvas.move(self.id, 200,300)
self.x=0
self.canvas_width=self.canvas.winfo_width()
self.canvas.bind_all('<KeyPress-left>',self.turn_left)
self.canvas.bind_all('<KeyPress-right>',self.turn_right)
def draw(self):
self.canvas.move(self.id,self.x,0)
pos=self.canvas.coords(self.id)
if pos[0]<=0:
self.x=0
elif pos[2]>=self.canvas_width:
self.x=0
# кнопки управления
def turn_left(self,evt):
self.x=-2
def turn_right(self,evt):
self.x=2
# создание холста
root = tk.Tk()
root.title("Game")
root.resizable(0, 0)
root.wm_attributes("-topmost", 1)
canvas = tk.Canvas(root, width=500, height=500, bd=0, highlightthickness=0)
canvas.pack()
root.update()
ball = Ball(canvas, Padlle,'red')
padlle= Padlle(canvas,'blue')
#основной цикл игры
while 1:
ball.draw()
padlle.draw()
root.update_idletasks()
root.update()
time.sleep(0.01)