X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2F__main__.py;h=08d7154a09b356b98be3981aeb96468cfab17621;hb=881e6bbd13737bcdd759d5297a41983b7f608d37;hp=dbb20cdcb69d062620e282449bc3fbba07922f91;hpb=e9fc58543d2b9f385d0bf245828fdeea1b60c0ae;p=erdslangetjie.git diff --git a/erdslangetjie/__main__.py b/erdslangetjie/__main__.py index dbb20cd..08d7154 100644 --- a/erdslangetjie/__main__.py +++ b/erdslangetjie/__main__.py @@ -1,4 +1,66 @@ +import sys +import os +import kivy + +kivy.require('1.6.0') + +from kivy.app import App +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 + + +class GameWindow(FloatLayout): + + def __init__(self, level): + super(GameWindow, self).__init__(size=(960, 960)) + 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() + + def build(self): + self.clear_widgets() + tiles = self.level_obj.get_tiles() + tile_size = 24 + bx, by = 0, 0 + for tile_line in tiles: + bx = 0 + for tile in tile_line: + node = Widget(size=(tile_size, tile_size), pos=(bx, by)) + with node.canvas: + Color(1, 1, 1) + Rectangle(pos=node.pos, size=node.size, + texture=tile.texture) + self.add_widget(node) + bx += tile_size + by += tile_size + + +class GameApp(App): + + def __init__(self): + self.level = 'level1.txt' + super(GameApp, self).__init__() + + def build(self): + game = GameWindow(self.level) + game.build() + return game + def main(): - """ your app starts here + """ Erdslangetjie, a maze game of eluding nemesis """ + GameApp().run()