Mercurial > skaapsteker
changeset 88:bf4adb40ca3c
Rough outline of a player object, completely with statuesque flying fox
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Mon, 04 Apr 2011 16:45:11 +0200 |
parents | 9d1719523ae5 |
children | a46fc252e4fa |
files | skaapsteker/data.py skaapsteker/level.py skaapsteker/levelscene.py skaapsteker/sprites/base.py |
diffstat | 4 files changed, 23 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/skaapsteker/data.py Mon Apr 04 16:44:13 2011 +0200 +++ b/skaapsteker/data.py Mon Apr 04 16:45:11 2011 +0200 @@ -32,6 +32,11 @@ return open(os.path.join(data_dir, filename), mode) +def get_files(filepath): + """Return a sorted list of files in the given directory, with the directory stripped""" + return sorted(os.listdir(os.path.join(data_dir, filepath))) + + IMAGES = {} def load_image(filename):
--- a/skaapsteker/level.py Mon Apr 04 16:44:13 2011 +0200 +++ b/skaapsteker/level.py Mon Apr 04 16:45:11 2011 +0200 @@ -51,12 +51,13 @@ class Level(object): - def __init__(self, leveldef): + def __init__(self, leveldef, player): self.level_data = json.loads(data.load('levels/' + leveldef + '.json').read()) self.sprites = LayeredUpdates() self.build_backgrounds() self.build_tiles() self.setup_enemies() + self.setup_player(player) def build_backgrounds(self): @@ -86,6 +87,12 @@ self.enemies.add(enemy) self.sprites.add(enemy) + def setup_player(self, player): + player_data = self.level_data['player'] + player.set_facing(player_data.pop('direction')) + player.set_image() + player.set_pos(player_data.pop('pos')) + self.sprites.add(player) # def setup_sprites(self): # self.sprites = []
--- a/skaapsteker/levelscene.py Mon Apr 04 16:44:13 2011 +0200 +++ b/skaapsteker/levelscene.py Mon Apr 04 16:45:11 2011 +0200 @@ -3,12 +3,17 @@ import engine import level import physics +import sprites.player import pygame class LevelScene(engine.Scene): - def __init__(self, leveldef): - self._level = level.Level(leveldef) + def __init__(self, leveldef, player=None): + if not player: + self._player = sprites.player.Player() + else: + self._player = player + self._level = level.Level(leveldef, self._player) self._level_surface = self._level.get_surface() self._pos = (0, 0) self._world = physics.World() @@ -19,6 +24,8 @@ for sprite in self._level.tiles: self._world.add(sprite) + self._world.add(self._player) + def draw(self, screen_surface): self._world.update() @@ -32,4 +39,5 @@ def dispatch(self, ev): # handle events here! + self._player.dispatch(ev) pass