X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2F__main__.py;h=885885ae7dfc4ba5e3eb78bbf03ae506b5ee17fe;hb=ec61c4e13ee1495884112c543eadccae9220e8f5;hp=93b39f531918045ee60bc0e75a2d3ba8386d0ab0;hpb=09cc49987329917f627fc89a33f89fedeb0f4b8c;p=erdslangetjie.git diff --git a/erdslangetjie/__main__.py b/erdslangetjie/__main__.py index 93b39f5..885885a 100644 --- a/erdslangetjie/__main__.py +++ b/erdslangetjie/__main__.py @@ -12,7 +12,7 @@ from kivy.clock import Clock from kivy.config import Config from erdslangetjie.level import LevelList -from erdslangetjie.data import load_image +from erdslangetjie.data import load_image, load_sound from erdslangetjie.player import ThePlayer, Nemesis @@ -42,8 +42,10 @@ class GameWindow(RelativeLayout): self.mouse_move = False + self.caught = load_sound('sounds/caught.ogg') + self.player = ThePlayer() - self.nemesis = Nemesis() + self.nemesis = Nemesis(self.app.config) if not self.level_obj.enter_pos: raise RuntimeError('No entry point') self.player_tile = None @@ -160,7 +162,8 @@ class GameWindow(RelativeLayout): self.add_widget(self.nemesis_tile) def _closed(self): - self.keyboard.unbind(on_key_down=self._on_key_down) + if platform() != 'android': + self.keyboard.unbind(on_key_down=self._on_key_down) def _on_key_down(self, keyboard, keycode, text, modifiers): direction = None @@ -248,6 +251,8 @@ class GameWindow(RelativeLayout): return elif self.check_caught(): # Caught + if self.app.config.getdefault('bane', 'sound', '0') != '0': + self.caught.play() self.reset_level() app = self.app self.app = None @@ -343,8 +348,40 @@ class GameApp(App): self.levels = LevelList() self.game = None + def build_config(self, config): + config.setdefaults('bane', { + 'start_level': 'levels/level1.txt', + 'sound': 'True' + }) + + def build_settings(self, settings): + config_json = """[ + { "type": "title", + "title": "Bane's Befuddlement" + }, + + { "type": "options", + "title": "Start Level", + "desc": "Level to start at", + "section": "bane", + "key": "start_level", + "options": ["%s"] }, + + { "type": "bool", + "title": "Sound", + "desc": "Enable sound", + "section": "bane", + "key": "sound" + } + ]""" % '", "'.join(self.levels.get_level_names()) + settings.add_json_panel("Bane's Befuddlement", + self.config, data=config_json) + def build(self): root = ScrollView(size_hint=(None, None)) + level_name = self.config.getdefault('bane', 'start_level', None) + if level_name: + self.levels.set_level_to(level_name) return root def on_start(self):