tkinter在画布上移动对象

2024-05-18 23:30:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: movedef画布updatecolorcanvaselifcharacter
2条回答

您需要使用move,而不是character.x += 10character.y -= 10

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)

**请注意:这些代码都不起作用-它只是给你一些关于如何做事情的想法。:)

我把一些东西绑在键盘上,当按下按钮时,它们会在屏幕上移动。

不用循环,只需使用config和bind更改对象的x和y。。。当你按键盘上的左键时,将运行def来移动物体。(或事物)

def move_object_left()...
   object.config(move left...)

绑定某物的示例:

entry.bind('<ButtonRelease-1>', lambda event: self.maximise_keyboard(event.widget))

x_变量=5 y_变量=9

**在此处将对象绑定到键盘:

*On_key_press('RIGHT'):
    x_var = x_var + 5
    object.config(x = x_var)

如果你想的话,你可以一次搬动一堆东西。。。(尽管你必须自己编写代码,哈哈)

物品清单=[树,灌木,蜗牛]

    for entry in list_of_stuff:
        ...
        **Get object X and Y of the object...
        ** add a number to this X and Y...

相关问题 更多 >

    热门问题