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
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
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
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
class GameApp(App):
- title = "Peter's thread snake"
+ title = "Bane's Befuddlement"
def __init__(self):
super(GameApp, self).__init__()
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):