X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2F__main__.py;h=74a0c33a2509ac939988175ea4de3624d6a033f2;hb=50cd60ab9838cbed76f8a5f7c0c4aa660da8bb1c;hp=db6669e83ff966a75ef6bcb18cdbdd7e01404831;hpb=6b9b0ccf122251850a75970305531bc4b4e8fca8;p=erdslangetjie.git diff --git a/erdslangetjie/__main__.py b/erdslangetjie/__main__.py index db6669e..74a0c33 100644 --- a/erdslangetjie/__main__.py +++ b/erdslangetjie/__main__.py @@ -1,21 +1,26 @@ -import pygame - -from erdslangetjie.constants import TILE_SIZE +from erdslangetjie.constants import TILE_SIZE, LEFT, RIGHT, UP, DOWN from kivy.app import App from kivy.uix.widget import Widget from kivy.uix.relativelayout import RelativeLayout from kivy.uix.scrollview import ScrollView from kivy.uix.label import Label +from kivy.uix.popup import Popup from kivy.graphics import Color, Rectangle from kivy.utils import platform from kivy.clock import Clock +from kivy.config import Config from erdslangetjie.level import LevelList from erdslangetjie.data import load_image from erdslangetjie.player import ThePlayer, Nemesis +if platform() != 'android': + Config.set('graphics', 'width', '1026') + Config.set('graphics', 'height', '760') + + class GameWindow(RelativeLayout): def __init__(self, level_list, app): @@ -158,15 +163,15 @@ class GameWindow(RelativeLayout): self.keyboard.unbind(on_key_down=self._on_key_down) def _on_key_down(self, keyboard, keycode, text, modifiers): - # FIXME - likely portablity issues direction = None - if keycode[0] == pygame.K_UP: + letter = keycode[1].lower() + if letter in UP: direction = (0, 1) - elif keycode[0] == pygame.K_DOWN: + elif letter in DOWN: direction = (0, -1) - elif keycode[0] == pygame.K_LEFT: + elif letter in LEFT: direction = (-1, 0) - elif keycode[0] == pygame.K_RIGHT: + elif letter in RIGHT: direction = (1, 0) if direction: self.do_move(direction) @@ -199,7 +204,8 @@ class GameWindow(RelativeLayout): def reset_level(self): Clock.unschedule(self.timed_move) self.timer_set = False - self.remove_widget(self.nemesis_tile) + if self.nemesis_tile: + self.remove_widget(self.nemesis_tile) self.nemesis.reset_pos() if self.level_obj: self.level_obj.load_tiles() @@ -300,8 +306,8 @@ class GameApp(App): title = "Peter's thread snake" def __init__(self): - self.levels = LevelList() super(GameApp, self).__init__() + self.levels = LevelList() def build(self): root = ScrollView(size_hint=(None, None)) @@ -313,6 +319,12 @@ class GameApp(App): if platform() == 'android': window.fullscreen = True self.root.size = window.size + errors = self.levels.get_errors() + if errors: + popup = Popup(title='Levels excluded', + content=Label(text='\n'.join(errors)), + size_hint=(.5, .5)) + popup.open() self.make_intro() def make_intro(self):