Я пытаюсь сделать простую игру памяти с обратным отсчетом в начале каждой игры.Приложение начнется с кнопки начала теста памяти, которая приведет вас к первой игре.Когда появится экран игры, я хочу начать обратный отсчет за 10 секунд до его начала.В настоящее время, когда я открываю приложение, отсчет начинается, прежде чем я меняю экраны.Текущий игровой экран называется экраном настроек.
main.py
class HomeScreen(Screen):
pass
class GameScreen(Screen):
pass
class SettingsScreen(Screen):
pass
class ImageButton(ButtonBehavior, Image):
pass
GUI = Builder.load_file("main.kv")
class MainApp(App):
def build(self):
return GUI
def change_screen(self, screen_name):
#get the screen manager from the kv file
screen_manager = self.root.ids['screen_manager']
screen_manager.current = screen_name
def on_start(settings_screen):
settings_screen.function_interval = Clock.schedule_interval(settings_screen.update_label, 1)
Clock.schedule_once(settings_screen.stop_interval, 10)
def stop_interval(settings_screen, *args):
settings_screen.function_interval.cancel()
def update_label(settings_screen, *args):
settings_screen.root.ids.counter.text = str(int(settings_screen.root.ids.counter.text) - 1)
MainApp().run()
main.kv
#:include kv/homescreen.kv
#:include kv/settingsscreen.kv
GridLayout:
cols: 1
ScreenManager:
id: screen_manager
HomeScreen:
name: "home_screen"
id: home_screen
SettingsScreen:
name: "settings_screen"
id: settings_screen
Label:
id: counter
text:"10"
GameScreen:
name: "game_screen"
id: game_screen
settingsscreen.kv
<SettingsScreen>:
GridLayout:
canvas:
Color:
rgb: utils.get_color_from_hex("#39B3F2")
Rectangle:
size: self.size
pos: self.pos
rows: 2
ImageButton:
source: "kv\\icons\\red1.png"
on_release:
print("selected red button")
ImageButton:
source: "kv\\icons\\yellow1.png"
on_release:
print("selected yellow button")
ImageButton:
source: "kv\\icons\\yellow2.png"
on_release:
print("selected yellow button")
ImageButton:
source: "kv\\icons\\red2.png"
on_release:
print("selected red button")