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

解决方法:

而不是character.x = 10或character.y – = 10,你需要使用move:

canvas.move(oval, 10, 0) # for x += 10

canvas.move(oval, 0, -10) # for y -= 10

其余的应该遵循.

您可以只使用oval = canvas.create_oval(x,y,x 40,y 40,fill = color)来代替Character类.

标签:python,tkinter

来源: https://codeday.me/bug/20191007/1865555.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐