我正在制作一个带有2个移动矩形的游戏,这些矩形由按键w和s以及上下箭头控制。但是尽管它们具有相同的代码和不同的名称,但我只能让它们中的一个移动(由箭头控制的一个)。我试图弄清楚它,但是没有运气,所以我真的需要一些帮助来移动第二个。(我还尝试了我在本网站上看到的其他方式,例如keyym,但也没有用) 谢谢!
矩形代码:
class Block:
def __init__(self, canvas, color, x1, y1):
self.canvas = canvas
self.id = canvas.create_rectangle(20, 10, 35, 90, fill = color)
self.x1 = x1
self.y1 = y1
self.canvas.move(self.id, self.x1, self.y1)
self.speed_1 = 0
self.speed_2 = 0
self.canvas.bind_all('<KeyPress-w>', self.turn_up_1) #Not working
self.canvas.bind_all('<KeyPress-s>', self.turn_down_1) #Not working
self.canvas.bind_all('<KeyPress-Up>', self.turn_up_2) #working
self.canvas.bind_all('<KeyPress-Down>', self.turn_down_2) #working
def turn_up_1(self, evt): #Not working
self.speed_1 = -3
def turn_down_1(self, evt): #Not working
self.speed_1 = 3
def draw_1(self):
self.canvas.move(self.id, 0, self.speed_1) #Not working
def turn_up_2(self, evt): #working
self.speed_2 = -3
def turn_down_2(self, evt): #working
self.speed_2 = 3
def draw_2(self):
self.canvas.move(self.id, 0, self.speed_2) #working
block1 = Block(canvas, 'blue', 0, 0)
block2 = Block(canvas, 'red', 940, 540)
循环:
while True:
block1.draw_1() #Not working
block2.draw_2() #Working
time.sleep(0.0333333333333333333333333333333333333333333333333333)
tk.update_idletasks()
tk.update()