Mercurial > skaapsteker
changeset 269:c24588c7ba09
Make sprinting single use after double tap
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Fri, 08 Apr 2011 15:56:37 +0200 |
parents | 401102f16a42 |
children | e47efa33903b |
files | skaapsteker/sprites/player.py |
diffstat | 1 files changed, 16 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/skaapsteker/sprites/player.py Fri Apr 08 15:41:01 2011 +0200 +++ b/skaapsteker/sprites/player.py Fri Apr 08 15:56:37 2011 +0200 @@ -30,7 +30,7 @@ # State flags and such self.attacking = 0 self.running = False - self.sprinting = False + self.sprinting = 0 self.jumping = False self.flying = False self._load_images() @@ -94,15 +94,19 @@ # Force animation frame jump self._animation_frame = old_frame + 1 self._last_time = time.time() - if self.sprinting: + if self.sprinting > 0: if (time.time() - self._sprint_start_time) > self._max_sprint_time: - self.sprinting = False + self.sprinting = 0 if abs(v_x) < 80: # Clamp when we're not moving at least 5 pixel / s self.velocity = (0, v_y) + if self.sprinting == 1: + self.sprinting = 0 self.running = not self.on_solid # if you're not on something you can't stand else: self.velocity = (0, v_y) # Standard platformer physics + if self.sprinting > 0: + self.sprinting = 1 self.running = True self.set_image() if self._collisions_seen > 2 * len(self._last_collide): @@ -180,32 +184,34 @@ if self.facing != 'left': self.facing = 'left' self.set_image() - if self.sprinting: + if self.sprinting > 0: + self.sprinting = 1 self.deltav((-900.0, 0.0)) else: self.deltav((-450.0, 0.0)) def action_double_left(self): # FIXME: Tie this to the tails - if self.sprinting: + if self.sprinting > 0: return - self.sprinting = True + self.sprinting = 2 self._sprint_start_time = time.time() def action_double_down(self): print 'double down tap' def action_double_right(self): - if self.sprinting: + if self.sprinting > 0: return - self.sprinting = True + self.sprinting = 2 self._sprint_start_time = time.time() def action_right(self): if self.facing != 'right': self.facing = 'right' self.set_image() - if self.sprinting: + if self.sprinting > 0: + self.sprinting = 1 # Flag so stopping works self.deltav((900.0, 0.0)) else: self.deltav((450.0, 0.0)) @@ -233,7 +239,7 @@ def _get_action(self): if self.attacking: return 'attacking' - if self.sprinting and self.running: + if (self.sprinting > 0) and self.running: return 'sprinting' if self.running: return 'running'