changeset 56:b9430b4a48da

Now with a werewolf
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 01 Sep 2013 18:51:06 +0200
parents 26d7bb8c09c8
children 1261c0731385
files nagslang/mutators.py nagslang/screens/area.py
diffstat 2 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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))
--- 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