X-Git-Url: https://git.ctpug.org.za/?p=erdslangetjie.git;a=blobdiff_plain;f=erdslangetjie%2F__main__.py;h=7329b443567da11d149f4fe66c6893da3cf9bf86;hp=50ee66dd4cebf7e591b6b61619efc82b4ad8e8c5;hb=a0b18a395627a951fe26fc6a3bf6acabdb23c41b;hpb=21f0e6625d077cafe3134c215c6202d5d32509f8 diff --git a/erdslangetjie/__main__.py b/erdslangetjie/__main__.py index 50ee66d..7329b44 100644 --- a/erdslangetjie/__main__.py +++ b/erdslangetjie/__main__.py @@ -1,5 +1,4 @@ import sys -import os import kivy import pygame @@ -11,8 +10,7 @@ from kivy.uix.widget import Widget 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 @@ -20,24 +18,14 @@ 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 @@ -97,16 +85,26 @@ class GameWindow(FloatLayout): 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