changeset 98:7ce2d2d8381a

Refactor BaseSprite.
author Simon Cross <hodgestar@gmail.com>
date Sun, 11 Sep 2011 19:25:11 +0200
parents c65046b5bafd
children 2b6626f417f2
files mamba/level.py mamba/snake.py mamba/sprites.py
diffstat 3 files changed, 27 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/level.py	Sun Sep 11 19:24:59 2011 +0200
+++ b/mamba/level.py	Sun Sep 11 19:25:11 2011 +0200
@@ -29,7 +29,7 @@
     }
 
 THING_MAP = {
-    'a': (BaseSprite, 'snake/snake-head-r'),
+    'a': (BaseSprite, 'common', 'snake/snake-head-r'),
     }
 
 
--- a/mamba/snake.py	Sun Sep 11 19:24:59 2011 +0200
+++ b/mamba/snake.py	Sun Sep 11 19:25:11 2011 +0200
@@ -1,6 +1,7 @@
 """The player snake object."""
 
 from mamba.sprites import BaseSprite
+from mamba import mutators
 
 
 class Snake(BaseSprite):
@@ -8,12 +9,20 @@
     UP, DOWN, LEFT, RIGHT = range(4)
 
     def __init__(self, tile_pos, orientation):
-        super(Snake, self).__init__("snake/"
+        super(Snake, self).__init__(image_name="snake/"
                                     "snake-head-mouth-open-r")
+        self.load_images()
         self.set_tile_pos(tile_pos)
         self.set_orientation(orientation)
 
+    def load_images(self):
+        pass
+
     def set_orientation(self, orientation):
         self._orientation = orientation
         print ["UP", "DOWN", "LEFT", "RIGHT"][orientation]
         # TODO: update image
+
+
+class Head(object):
+    pass
--- a/mamba/sprites.py	Sun Sep 11 19:24:59 2011 +0200
+++ b/mamba/sprites.py	Sun Sep 11 19:25:11 2011 +0200
@@ -13,15 +13,16 @@
 class BaseSprite(Sprite):
     tileset = 'common'
 
-    def __init__(self, image_name, *groups):
-        super(BaseSprite, self).__init__(*groups)
-        self.image_name = image_name
-        self.load_image(image_name, self.tileset)
+    def __init__(self, tileset=None, image_name=None):
+        super(BaseSprite, self).__init__()
+        if tileset is not None:
+            self.tileset = tileset
+        if image_name is not None:
+            self.image = self.load_image(image_name)
 
-    def load_image(self, image_name, tileset):
-        if tileset is None:
-            tileset = self.tileset
-        self.image = load_image('tiles/%s/%s.png' % (tileset, image_name))
+    def load_image(self, image_name, mutators=()):
+        return load_image('tiles/%s/%s.png' % (self.tileset, image_name),
+                          mutators)
 
     def set_tile_pos(self, tile_pos):
         self.tile_pos = tile_pos
@@ -29,29 +30,28 @@
 
 
 class TileSprite(BaseSprite):
-    def __init__(self, tileset_name, image_name, *groups):
-        self.tileset = tileset_name
-        super(TileSprite, self).__init__(image_name, *groups)
+    def __init__(self, tileset, image_name):
+        super(TileSprite, self).__init__(tileset, image_name)
 
 
 class SingleImageTileSprite(TileSprite):
-    def __init__(self, tileset, *groups):
+    def __init__(self, tileset):
         super(SingleImageTileSprite, self).__init__(tileset, self.image_name)
 
 
 class DoorSprite(TileSprite):
-    def __init__(self, tileset_name, colour, *groups):
+    def __init__(self, tileset_name, colour):
         self.colour = colour
         image_name = 'door_%s' % (colour,)
-        super(DoorSprite, self).__init__(tileset_name, image_name, *groups)
+        super(DoorSprite, self).__init__(tileset_name, image_name)
 
 
 class EntrySprite(SingleImageTileSprite):
     image_name = 'puddle-r'
 
-    def __init__(self, tileset_name, direction, *groups):
+    def __init__(self, tileset_name, direction):
         self.direction = direction
-        super(EntrySprite, self).__init__(tileset_name, direction)
+        super(EntrySprite, self).__init__(tileset_name)
 
 
 class ExitSprite(SingleImageTileSprite):