Ich bin neu in Python. Ich versuche eine einfache Objektbewegung auf Leinwand zu erreichen.tkinter move Objekt auf Leinwand
Die Idee ist einfach X, Y-Koordinaten zu aktualisieren und das Oval neu zu zeichnen.
Ich habe versucht, canvas.update()
jedes Mal zu verwenden, wenn ich Koordinaten aktualisiere, aber es funktioniert nicht so.
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()
Vielen Dank für Ihre Antwort. Ich habe versucht, diesen Ansatz zu verwenden. Ich habe eine einfache Funktion erstellt, die jedes Mal ausgeführt wird, wenn Sie auf die Schaltfläche klicken. Es klappt. Jedes Klicken bewegt das Oval um 10. Wenn ich jedoch versuche, eine Schleife zu verwenden, um das Oval zu bewegen, erscheint es an der endgültigen Position. Zum Beispiel für i in Bereich (5): canvas.move (oval, 10, 0) es bewegt das Oval +50 und zeigt dann –
Ich löste dieses Problem. root.after (2000, Aufgabe) Danke –