# HG changeset patch # User Stefano Rivera # Date 1378054266 -7200 # Node ID b9430b4a48da13553a7916acabdec422bee7ea7d # Parent 26d7bb8c09c89558233501b1df86ea80d0d2bc77 Now with a werewolf diff -r 26d7bb8c09c8 -r b9430b4a48da nagslang/mutators.py --- a/nagslang/mutators.py Sun Sep 01 18:50:19 2013 +0200 +++ b/nagslang/mutators.py Sun Sep 01 18:51:06 2013 +0200 @@ -1,7 +1,7 @@ '''Mutations to apply to images''' import pygame -from pygame.transform import rotate +from pygame.transform import rotate, flip class Mutator(object): @@ -47,6 +47,9 @@ R180 = Mutator(rotate, 180) R270 = Mutator(rotate, -90) +FLIP_H = Mutator(flip, True, False) +FLIP_V = Mutator(flip, False, True) + # Colour RED = Colour((255, 0, 0)) GREEN = Colour((0, 255, 0)) diff -r 26d7bb8c09c8 -r b9430b4a48da nagslang/screens/area.py --- a/nagslang/screens/area.py Sun Sep 01 18:50:19 2013 +0200 +++ b/nagslang/screens/area.py Sun Sep 01 18:51:06 2013 +0200 @@ -1,5 +1,6 @@ """Display a game area.""" +import math import pygame import pymunk import pymunk.pygame_util @@ -7,6 +8,8 @@ from nagslang.screens.base import Screen from nagslang.level import Level from nagslang.events import ScreenChange +from nagslang.resources import resources +from nagslang.mutators import FLIP_H class ControlKeys(object): @@ -45,7 +48,17 @@ return pymunk.Body.update_velocity(body, gravity, self.damping, dt) def render(self, surface): - pymunk.pygame_util.draw(surface, self.shape) + if self.werewolf: + pos = pymunk.pygame_util.to_pygame(self.body.position, surface) + transforms = () + if abs(self.body.angle) < math.pi / 2: + transforms = (FLIP_H,) + + wolf = resources.get_image('creatures', 'werewolf_1.png', + transforms=transforms) + surface.blit(wolf, pos) + else: + pymunk.pygame_util.draw(surface, self.shape) def go_werewolf(self): self.werewolf = True