延迟倒数时钟,直到我更换屏幕

时间:2019-07-10 19:11:28

标签: python python-3.x kivy clock kivy-language

我正在尝试制作一个简单的记忆游戏,在每个游戏开始时都有一个倒计时。该应用程序将以“开始内存测试”按钮开始,该按钮将带您进入第一个游戏。当游戏屏幕打开时,我想从倒数开始前的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")

0 个答案:

没有答案