python from asciimatics.screen import Screen from asciimatics.widgets import Frame, ListBox, Layout, Divider, Text, \ Button, TextBox, Widget from asciimatics.exceptions import NextScene class MainMenu(Frame): def __init__(self, screen): super(MainMenu, self).__init__(screen, int(screen.height * 2 // 3), int(screen.width * 2 // 3), on_load=self._reload_screen) layout = Layout([100], fill_frame=True) self.add_layout(layout) layout.add_widget(TextBox(5, label="Text:", name="text", on_change=self._on_change)) layout.add_widget(Button("Ok", self._ok)) layout.add_widget(Button("Cancel", self._cancel)) self.fix() def _ok(self): raise NextScene("Main") def _cancel(self): raise NextScene("Main") def _reload_screen(self, _): self._screen.play([["Preparing..."]], stop_on_resize=True) def _on_change(self): self.palette["borders"] = (Widget.RED if self.data["text"] == "" else Widget.WHITE) self._update_widgets() class Game: def __init__(self): self.screen = Screen.open() def run(self): scenes = [ Scene([MainMenu(screen)], -1, name="Main"), ] screen.set_scenes(scenes) screen.start() if __name__ == "__main__": game = Game() game.run()


上一篇:
下一篇:
切换中文