Mercurial > nagslang
changeset 408:d04981e24fda
Move hard-coded starting point to levels meta file
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 07 Sep 2013 12:32:40 +0200 |
parents | 314ddad2d6d2 |
children | 180c27514619 |
files | data/levels/LEVELS data/levels/meta nagslang/level.py nagslang/world.py |
diffstat | 4 files changed, 17 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/data/levels/LEVELS Sat Sep 07 12:10:42 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -levels: - - start - - level1 - - level2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/levels/meta Sat Sep 07 12:32:40 2013 +0200 @@ -0,0 +1,2 @@ +starting_level: start +starting_position: [350, 300]
--- a/nagslang/level.py Sat Sep 07 12:10:42 2013 +0200 +++ b/nagslang/level.py Sat Sep 07 12:32:40 2013 +0200 @@ -1,3 +1,5 @@ +import os + import pygame import pygame.locals as pgl @@ -61,9 +63,17 @@ @classmethod def list_levels(cls): - with resources.get_file('levels', 'LEVELS') as f: - levels = load(f) - return levels['levels'] + dir_ = resources.get_resource_path('levels') + for file_ in os.listdir(dir_): + if file_ == 'meta': + continue + yield file_ + + @classmethod + def game_starting_point(cls): + with resources.get_file('levels', 'meta') as f: + data = load(f) + return (data['starting_level'], data['starting_position']) def load(self, space): data = self._get_data()
--- a/nagslang/world.py Sat Sep 07 12:10:42 2013 +0200 +++ b/nagslang/world.py Sat Sep 07 12:32:40 2013 +0200 @@ -18,20 +18,18 @@ self.reset() def reset(self): - first_level = Level.list_levels()[0] - starting_position = (350, 300) self.__dict__['_data'] = { 'attacks': 0, 'deaths': 0, 'transformations': 0, 'kills': 0, 'rooms': 0, - 'level': (first_level, starting_position), + 'level': Level.game_starting_point(), 'level_state': {}, 'inventory': set(), } self.__dict__['protagonist'] = Protagonist( - pymunk.Space(), self, starting_position) + pymunk.Space(), self, self.level[1]) def __getattr__(self, name): try: