import sys
-import os
import kivy
import pygame
from kivy.uix.floatlayout import FloatLayout
from kivy.graphics import Color, Rectangle
-from erdslangetjie.data import filepath, load
-from erdslangetjie.level import Level
+from erdslangetjie.level import LevelList
from erdslangetjie.player import ThePlayer, Nemesis
TILE_SIZE = 24
class GameWindow(FloatLayout):
- def __init__(self, level):
+ def __init__(self, level_list):
super(GameWindow, self).__init__(size=(648, 480))
- if os.path.exists(filepath(level)):
- level_data = load(level)
- self.level = level
- elif os.path.exists(filepath('levels/' + level)):
- level_data = load('levels/' + level)
- self.level = 'levels/' + level
- else:
- print 'Unable to find %s - treating this as a new level' % level
- sys.exit(1)
- self.level_obj = Level()
- self.level_obj.load(level_data)
- level_data.close()
+ self.level_list = level_list
+ self.level_obj = self.level_list.get_current_level()
+ self.level_obj.load_tiles()
self.tiles = {}
self.player = ThePlayer()
- self.level_obj.load_tiles()
if not self.level_obj.enter_pos:
raise RuntimeError('No entry point')
self.player_tile = None
if self.player.can_move(direction, self.level_obj):
self.player.move(direction)
self.draw_player()
+ if self.level_obj.at_exit(self.player.pos):
+ self.level_obj = self.level_list.advance_to_next_level()
+ if self.level_obj:
+ self.level_obj.load_tiles()
+ self.player.pos = self.level_obj.enter_pos
+ self.remove_widget(self.player_tile)
+ self.build()
+ else:
+ print 'You won!'
+ sys.exit(1)
class GameApp(App):
def __init__(self):
- self.level = 'level1.txt'
+ self.levels = LevelList()
super(GameApp, self).__init__()
def build(self):
- game = GameWindow(self.level)
+ game = GameWindow(self.levels)
game.build()
return game