所以我在游戏结束后更换屏幕有问题。
我试过这样做:Manager.current = 'endmenu'
但它不起作用。这是我的kv和py文件的代码片段
在主.py,使用switch()的函数
^{pr2}$
编辑的屏幕管理器类:class Manager(ScreenManager):
def __init__(self, *args, **kwargs):
super(Manager, self).__init__(*args, **kwargs)
self.current = 'menu'
def switch(self, where):
self.current = str(where)
sm = Manager(transition=WipeTransition())
class ColorPongApp(App):
def build(self):
return sm
以及我的kv文件:
Screen:
name: 'menu'
BoxLayout:
Button:
text: 'Play Color Pong'
halign: 'center'
valign: 'middle'
font_size: 50
text_size: self.size
on_release: root.current = 'game';game.serve_ball()
Button:
text: 'Quit'
halign: 'center'
valign: 'middle'
font_size: 50
text_size: self.size
on_release: game.quit()
Screen:
name: 'game'
ColorPongGame:
id: game
Screen:
name: 'endmenu'
id: endmenu
BoxLayout:
Button:
text: 'Replay'
halign: 'center'
valign: 'middle'
font_size: 50
text_size: self.size
on_release: root.current = 'game';game.serve_ball()
Button:
text: 'Quit'
halign: 'center'
valign: 'middle'
font_size: 50
text_size: self.size
on_release: game.quit()
我只想更改屏幕,但我认为这是不可能的,因为python文件中不知道名称'endmenu',即使有了这些知识,我也不知道如何修复这个问题。在