Validate levels during gameplay
[erdslangetjie.git] / erdslangetjie / __main__.py
index db6669e83ff966a75ef6bcb18cdbdd7e01404831..5cd9b7fcc39de69995406e7b4f8615fe7ab6edde 100644 (file)
@@ -1,6 +1,4 @@
-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
@@ -10,17 +8,24 @@ from kivy.uix.label import Label
 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):
         self.level_list = level_list
         self.level_obj = self.level_list.get_current_level()
+        self.level_obj.validate()
         self.level_obj.load_tiles()
         self.tiles = {}
         self.view = app.root
@@ -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)
@@ -202,6 +207,7 @@ class GameWindow(RelativeLayout):
         self.remove_widget(self.nemesis_tile)
         self.nemesis.reset_pos()
         if self.level_obj:
+            self.level_obj.validate()
             self.level_obj.load_tiles()
             self.player.pos = self.level_obj.enter_pos
             self.remove_widget(self.player_tile)