Im Grunde versuche ich, mein eigenes TK-Fenster für meine Schildkröte zu verwenden -Schnittstelle, damit ich Tk-Widgets zu meinem Turtle-Programm hinzufügen kann. Es ist ein sehr einfaches Programm, mit dem Sie mit dem Schildkrötenstift zeichnen können. Ich möchte jedoch eine Möglichkeit haben, die Zeichengeschwindigkeit anzupassen, und ich habe vor, dies mit TK-Schiebereglern zu tun. Bevor ich jedoch Schieberegler hinzufüge, stelle ich fest, dass die Schildkröte viel weniger reagiert und sich unregelmäßiger bewegt als ohne die benutzerdefinierte Tk-Einbettung. Wie kann ich die Bewegung der Schildkröte im Tk-Fenster optimieren?
Hier ist mein gesamtes Programm (vorerst ohne Schieberegler):
Code: Select all
import turtle as t
from tkinter import *
def move_forward():
pen.forward(1) # Eventually, I want to replace 1 with a .get() from movement slider
def move_back():
pen.back(1)
def left():
pen.left(1) # Similarly as above comment, with an angle slider
def right():
pen.right(1)
def up_down():
if pen.isdown():
pen.penup()
else:
pen.pendown()
win = Tk()
canvas = t.ScrolledCanvas(win)
canvas.pack()
screen = t.TurtleScreen(canvas)
pen = t.RawTurtle(canvas)
screen.listen()
screen.onkey(move_forward, "w")
screen.onkey(move_forward, "Up")
screen.onkey(move_back, "s")
screen.onkey(move_back, "Down")
screen.onkey(left, "a")
screen.onkey(left, "Left")
screen.onkey(right, "d")
screen.onkey(right, "Right")
screen.onkey(up_down, "p")
screen.mainloop()