我是Python新手。我正在尝试在画布上实现简单的对象移动。
这个想法是简单地更新 X、Y 坐标并重新绘制椭圆形。
我尝试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()
Run Code Online (Sandbox Code Playgroud)
您需要使用以下而不是character.x += 10or :character.y -= 10move
canvas.move(oval, 10, 0) # for x += 10
canvas.move(oval, 0, -10) # for y -= 10
Run Code Online (Sandbox Code Playgroud)
其余的应该遵循。
Character您可以只说 ,而不是类oval = canvas.create_oval(x, y, x + 40, y + 40, fill=color)。