Mercurial > mamba
changeset 212:e768056b0588
Refactor tile image loading stuff. More magic is good, right?
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 21:12:20 +0200 |
parents | 077626113593 |
children | 7a9be9add4c7 |
files | mamba/data.py mamba/mutators.py mamba/snake.py mamba/sprites.py |
diffstat | 4 files changed, 15 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/data.py Wed Sep 14 21:01:20 2011 +0200 +++ b/mamba/data.py Wed Sep 14 21:12:20 2011 +0200 @@ -50,3 +50,8 @@ image = mutator(image) MUTATED_IMAGES[key] = image return image + + +def load_tile_image(image_name, tileset='common', mutators=()): + filename = "tiles/%s/%s.png" % (tileset, image_name) + return load_image(filename, mutators)
--- a/mamba/mutators.py Wed Sep 14 21:01:20 2011 +0200 +++ b/mamba/mutators.py Wed Sep 14 21:12:20 2011 +0200 @@ -4,7 +4,7 @@ from pygame.locals import BLEND_MULT from pygame.surface import Surface -from mamba.data import load_image +from mamba.data import load_tile_image class Mutator(object): @@ -45,12 +45,12 @@ class Overlay(Mutator): """Overlay another image on top of the given one.""" - def __init__(self, filename, blend=0): - super(Overlay, self).__init__(self.overlay, filename, blend) + def __init__(self, image_name, tileset="common", blend=0): + super(Overlay, self).__init__(self.overlay, image_name, tileset, blend) - def overlay(self, image, filename, blend): + def overlay(self, image, image_name, tileset, blend): image = image.copy() - overlay = load_image(filename) + overlay = load_tile_image(image_name, tileset) image.blit(overlay, (0, 0), None, blend) return image
--- a/mamba/snake.py Wed Sep 14 21:01:20 2011 +0200 +++ b/mamba/snake.py Wed Sep 14 21:12:20 2011 +0200 @@ -189,8 +189,8 @@ class Head(Segment): CLOSED = "snake-head" OPEN = "snake-head-mouth-open-r" - EYE = mutators.Overlay("tiles/common/snake/snake-head-eye-r.png") - TONGUE = mutators.Overlay("tiles/common/snake/snake-head-tongue-r.png") + EYE = mutators.Overlay("snake/snake-head-eye-r") + TONGUE = mutators.Overlay("snake/snake-head-tongue-r") is_head = True
--- a/mamba/sprites.py Wed Sep 14 21:01:20 2011 +0200 +++ b/mamba/sprites.py Wed Sep 14 21:12:20 2011 +0200 @@ -1,7 +1,7 @@ from pygame.sprite import Sprite from pygame import Rect -from mamba.data import load_image +from mamba.data import load_tile_image from mamba.constants import TILE_SIZE, UP, DOWN, LEFT, RIGHT from mamba import mutators @@ -14,8 +14,7 @@ def colour_with_fittings(image_name, tileset, colour): - fittings_mutator = mutators.Overlay( - "tiles/%s/%s-fittings.png" % (tileset, image_name)) + fittings_mutator = mutators.Overlay("%s-fittings" % (image_name,), tileset) return image_name, (COLOURS[colour], fittings_mutator) @@ -105,8 +104,7 @@ self.image = self.load_image(image_name, mutators=mutators) def load_image(self, image_name, mutators=()): - return load_image('tiles/%s/%s.png' % (self.tileset, image_name), - mutators) + return load_tile_image(image_name, self.tileset, mutators) def set_tile_pos(self, tile_pos): self.tile_pos = tile_pos