tkinter 在画布上移动对象

5 python tkinter

我是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)

Sne*_*tle 4

您需要使用以下而不是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)