有没有办法从 tkinter gui 调用 turtle screen?
Is there any way to call turtle screen from tkinter gui?
我想为我创建的游戏创建图形用户界面。我在为 tkinter 中的按钮分配 class 名称时遇到了问题。在脚本 运行、游戏 运行s 和 gui 之后没有。我还注意到仅导入游戏 class 就足以让它发生。感谢任何建议。
最简单的图形用户界面
from agario import game
class menu():
def __init__(self):
tk.Tk.__init__(self)
tk.Tk.geometry(self, '450x400')
tk.Button(self, text='start', width=20, command=game()).pack()
test = menu()
test.mainloop()
游戏class
class game():
s = 0.4 #### agario speed
wn = t.Screen()
wn.title("agario game")
wn.setup(width=600, height=500)
wn.tracer(0)
wn.bgcolor("black")
while True:
wn.update()
move(a.agario_object, wn, s).movement() ### movement part
killing(k.killing_object, a.agario_object,k.killing_ball).agario_border_check(), killing(k.killing_object, a.agario_object,k.killing_ball).killing_ball_check() ## kiling balls part
cko(a.agario_object,f.food_object, f.food).food_con(), cko(a.agario_object,f.food_object, f.food).boost_con(b.boost_object, b.boost) ## contacts part
wn.mainloop()
是的,有一种定义明确的方法可以从 tkinter GUI 中调用 turtle 屏幕。但是您的示例中没有足够的代码,并且您导入了我没有的库,所以我无法提供完整的自定义示例。
Turtle
和 Screen
API 用于 standalone turtle。当 嵌入 到更大的 tkinter 程序中时,我们使用 RawTurtle
和可选的 TurtleScreen
。在 tkinter 级别,您需要提供 tkinter.Canvas
或 turtle.ScrolledCanvas
,实例:
root = tkinter.Tk()
canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tkinter.LEFT)
如果您需要调用基于屏幕的方法,您可以将(滚动的)canvas 包裹在 TurtleScreen
中:
screen = turtle.TurtleScreen(canvas)
screen.setworldcoordinates(-10, 100, 100, -10)
然后您使用 canvas、滚动 canvas 或屏幕创建 RawTurtle
个实例:
turtle = turtle.RawTurtle(screen)
turtle.goto(90, 90)
我想为我创建的游戏创建图形用户界面。我在为 tkinter 中的按钮分配 class 名称时遇到了问题。在脚本 运行、游戏 运行s 和 gui 之后没有。我还注意到仅导入游戏 class 就足以让它发生。感谢任何建议。
最简单的图形用户界面
from agario import game
class menu():
def __init__(self):
tk.Tk.__init__(self)
tk.Tk.geometry(self, '450x400')
tk.Button(self, text='start', width=20, command=game()).pack()
test = menu()
test.mainloop()
游戏class
class game():
s = 0.4 #### agario speed
wn = t.Screen()
wn.title("agario game")
wn.setup(width=600, height=500)
wn.tracer(0)
wn.bgcolor("black")
while True:
wn.update()
move(a.agario_object, wn, s).movement() ### movement part
killing(k.killing_object, a.agario_object,k.killing_ball).agario_border_check(), killing(k.killing_object, a.agario_object,k.killing_ball).killing_ball_check() ## kiling balls part
cko(a.agario_object,f.food_object, f.food).food_con(), cko(a.agario_object,f.food_object, f.food).boost_con(b.boost_object, b.boost) ## contacts part
wn.mainloop()
是的,有一种定义明确的方法可以从 tkinter GUI 中调用 turtle 屏幕。但是您的示例中没有足够的代码,并且您导入了我没有的库,所以我无法提供完整的自定义示例。
Turtle
和 Screen
API 用于 standalone turtle。当 嵌入 到更大的 tkinter 程序中时,我们使用 RawTurtle
和可选的 TurtleScreen
。在 tkinter 级别,您需要提供 tkinter.Canvas
或 turtle.ScrolledCanvas
,实例:
root = tkinter.Tk()
canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tkinter.LEFT)
如果您需要调用基于屏幕的方法,您可以将(滚动的)canvas 包裹在 TurtleScreen
中:
screen = turtle.TurtleScreen(canvas)
screen.setworldcoordinates(-10, 100, 100, -10)
然后您使用 canvas、滚动 canvas 或屏幕创建 RawTurtle
个实例:
turtle = turtle.RawTurtle(screen)
turtle.goto(90, 90)