# HG changeset patch # User Neil Muller # Date 1302270997 -7200 # Node ID c24588c7ba0958f3037acf8e8bd648157cf53416 # Parent 401102f16a42d10820db38b4a348b401dd7aeab2 Make sprinting single use after double tap diff -r 401102f16a42 -r c24588c7ba09 skaapsteker/sprites/player.py --- 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'