我想为自己创建的游戏创建GUI。将类名称分配给tkinter中的按钮时遇到问题。脚本运行后,游戏运行,而gui不运行。我也注意到,仅导入游戏类就足以使它发生是足够的。感谢任何建议。
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 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()
答案 0 :(得分:0)
是的,有一种定义明确的方法可以从tkinter GUI内调用乌龟屏幕。但是您的示例中的代码不足,并且您导入了我没有的库,因此我无法提供完整的自定义示例。
Turtle
和Screen
API适用于独立乌龟。当在较大的tkinter程序中嵌入 时,我们使用RawTurtle
,也可以使用TurtleScreen
。在tkinter级别,您需要提供一个tkinter.Canvas
或turtle.ScrolledCanvas
实例:
root = tkinter.Tk()
canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tkinter.LEFT)
如果需要调用基于屏幕的方法,可以将(滚动的)画布包裹在TurtleScreen
中:
screen = turtle.TurtleScreen(canvas)
screen.setworldcoordinates(-10, 100, 100, -10)
然后,您可以使用画布,滚动的画布或屏幕创建RawTurtle
实例:
turtle = turtle.RawTurtle(screen)
turtle.goto(90, 90)