私はPythonで新しくなりました。私はキャンバス上で簡単なオブジェクトの動きを達成しようとしています。tkinterオブジェクトをキャンバスに移動
単純に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()
感謝。私はこのアプローチを使用しようとしました。私はあなたがボタンをクリックするたびに実行される単純な機能を作った。できます。クリックするたびに楕円が10ずつ移動します。しかし、楕円を動かすためにループを使用しようとすると、最終位置に現れます。たとえば、範囲(5)のiの場合:canvas.move(oval、10、0)楕円+50を移動して表示します。 –
この問題を解決しました。 root.after(2000、task)ありがとう –