我正在Tkinter的“画布模块”中用乌龟创建游戏。我遇到了一个问题,当我尝试生成新的乌龟时,它会在新的窗口而不是画布中生成。我做错了什么?我也想通过退出按钮解决我的问题。我一直试图将其放在右下角。我尝试过.place()
和.grid()
,但没有成功。我还尝试了其他关于stackoverflow的解决方案,但是它们要么导致错误,要么消失,可能在画布后面。
这是我的代码:
import tkinter as tk
import random
import turtle
import time
import sys
def spawn(e=None):
xrand = random.randint(0,500)
yrand = random.randint(0,500)
turtle.RawTurtle(app)
turtle.shape("square")
turtle.penup()
turtle.goto(x=xrand,y=yrand)
def systemap(e=None):
app.pack()
button.pack()
def f(e=None):
t.setheading(90)
t.forward(1)
def l(e=None):
t.setheading(180)
t.forward(1)
def r(e=None):
t.setheading(0)
t.forward(1)
def b(e=None):
t.setheading(270)
t.forward(1)
def quit(e=None):
time.sleep(1)
window.destroy()
sys.exit()
window = tk.Tk()
#window.iconbitmap('py.ico')
window.title("Turtle Graphics")
window.geometry("750x500")
window.resizable(False,False)
button = tk.Button(window,text="Exit",command = quit)
app = tk.Canvas(master=window,width=500,height=500,bg="white")
t=turtle.RawTurtle(app)
window.bind("<Up>",f)
window.bind("<Left>",l)
window.bind("<Right>",r)
window.bind("<Down>",b)
window.bind("<w>",f)
window.bind("<a>",l)
window.bind("<d>",r)
window.bind("<s>",b)
window.bind("<e>",spawn)
window.bind("<Escape>",quit)
systemap()
window.mainloop()