Changeset 218:9e2ef2f15035 for nagslang
- Timestamp:
- Sep 4, 2013, 1:06:33 PM (7 years ago)
- Branch:
- default
- Location:
- nagslang
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
nagslang/enemies.py
r217 r218 34 34 35 35 class PatrollingAlien(Enemy): 36 is_moving = True # Always walking. 36 37 37 38 def __init__(self, space, position, end_position): -
nagslang/game_object.py
r217 r218 118 118 119 119 zorder = ZORDER_LOW 120 is_moving = False # `True` if a movement animation should play. 120 121 121 122 def __init__(self, physicser, renderer, puzzler=None, overlay=None): … … 150 151 self.renderer.animate() 151 152 152 def is_moving(self):153 """Returns `True` if this object is moving.154 155 This is mostly for movement-based animation renderers to look at.156 """157 return self.physicser.get_velocity().length > 0158 159 153 def collide_with_protagonist(self): 160 154 """Called as a `pre_solve` collision callback with the protagonist. -
nagslang/protagonist.py
r217 r218 27 27 28 28 29 class ProtagonistFormSelectionRenderer(render.RendererSelectionRenderer): 30 def select_renderer(self): 31 return self.game_object.render_form 32 33 29 34 class Protagonist(GameObject): 30 35 """Representation of our fearless protagonist. … … 40 45 def __init__(self, space, position): 41 46 physicser = self._make_physics(space, position) 42 self._setup_renderers()47 renderer = self._make_renderer() 43 48 self.inventory = {} 44 49 self.form = self.HUMAN_FORM 45 50 self.render_form = self.HUMAN_FORM 46 47 super(Protagonist, self).__init__( 48 physicser, self._renderers[self.form]) 51 self.angle = 0 52 self.is_moving = False 53 54 super(Protagonist, self).__init__(physicser, renderer) 49 55 self.zorder = ZORDER_MID 50 56 … … 79 85 return resources.get_image('creatures', name, transforms=transforms) 80 86 81 def _setup_renderers(self): 82 self.angle = 0 83 self._renderers = { 87 def _make_renderer(self): 88 return ProtagonistFormSelectionRenderer({ 84 89 self.HUMAN_FORM: render.FacingSelectionRenderer( 85 90 { … … 118 123 self._get_image('werewolf_back_2.png', FLIP_H)], 3), 119 124 }), 120 } 121 for renderer in self._renderers.values(): 122 renderer.set_game_object(self) 125 }) 123 126 124 127 @classmethod … … 144 147 else: 145 148 self.render_form = self.WOLF_FORM 146 self.renderer = self._renderers[self.render_form]147 149 148 150 def go_human(self): … … 157 159 else: 158 160 self.render_form = self.HUMAN_FORM 159 self.renderer = self._renderers[self.render_form]160 161 161 162 def _switch_to_back(self): … … 164 165 elif self.render_form == self.WOLF_FORM: 165 166 self.render_form = self.WOLF_FORM_BACK 166 self.renderer = self._renderers[self.render_form]167 167 168 168 def _switch_to_front(self): … … 171 171 elif self.render_form == self.WOLF_FORM_BACK: 172 172 self.render_form = self.WOLF_FORM 173 self.renderer = self._renderers[self.render_form]174 173 175 174 def set_direction(self, dx, dy): 176 175 if (dx, dy) == (0, 0): 176 self.is_moving = False 177 177 return 178 self.is_moving = True 178 179 old_angle = self.angle 179 180 self.angle = pymunk.Vec2d((dx, dy)).angle … … 201 202 self.render_form = old_protagonist.render_form 202 203 self.inventory = old_protagonist.inventory 203 self.renderer = self._renderers[self.render_form]204 204 205 205 def toggle_form(self): -
nagslang/render.py
r217 r218 100 100 class MovementAnimatedRenderer(TimedAnimatedRenderer): 101 101 def animate(self): 102 if self.game_object.is_moving ():102 if self.game_object.is_moving: 103 103 self.advance_tick() 104 104 else:
Note: See TracChangeset
for help on using the changeset viewer.