我是python的新手。我正在尝试在画布上实现简单的对象运动。
想法是简单地更新X,Y坐标并重绘椭圆。
我尝试canvas.update()每次更新坐标时都使用,但是这种方式行不通。
canvas.update()
class character(): x = 10 y = 10 color = "red" canvas.create_oval(x, y, x + 40, y + 40, fill=color) def moveup(): character.y -= 10 def moveright(): character.x += 10 def movedown(): character.y += 10 def moveleft(): character.x -= 10 def choose(): choosen_move = randint(0, 4) if choosen_move == 0: moveup() elif choosen_move == 1: moveright() elif choosen_move == 2: movedown() elif choosen_move == 3: moveleft() print "%s | %s" % (character.x, character.y) canvas.update() sleep(1) while True: choose() root.mainloop()
代替character.x += 10or character.y -= 10,您需要使用move:
character.x += 10
character.y -= 10
move
canvas.move(oval, 10, 0) # for x += 10 canvas.move(oval, 0, -10) # for y -= 10
其余应遵循。
除了Character上课,您可以说oval = canvas.create_oval(x, y, x + 40, y + 40, fill=color)。
Character
oval = canvas.create_oval(x, y, x + 40, y + 40, fill=color)