Mercurial > skaapsteker
diff skaapsteker/sprites/player.py @ 144:6b488e1351a5
Buggy ground implementation. Make the world less bouncy
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Tue, 05 Apr 2011 15:46:13 +0200 |
parents | 51bcc909873d |
children | 887d69907b22 |
line wrap: on
line diff
--- a/skaapsteker/sprites/player.py Tue Apr 05 15:00:31 2011 +0200 +++ b/skaapsteker/sprites/player.py Tue Apr 05 15:46:13 2011 +0200 @@ -39,16 +39,16 @@ if self._animation_frame >= len(images): self._animation_frame = 0.0 if self.rect: - cur_pos = self.rect.topleft + cur_pos = self.collide_rect.topleft else: cur_pos = (0, 0) self.image = images[int(self._animation_frame)] self.rect = self.image.get_rect() self.collide_rect = self.image.get_bounding_rect(1) - self.rect_offset = self.collide_rect.left - self.rect.left, self.collide_rect.top - self.rect.top - self.rect.topleft = cur_pos - self.collide_rect.topleft = cur_pos[0] + self.rect_offset[0], cur_pos[1] + self.rect_offset[1] - + self.rect_offset = self.rect.left - self.collide_rect.left, self.rect.top - self.collide_rect.top + self.collide_rect.topleft = cur_pos + self.rect.topleft = cur_pos[0] + self.rect_offset[0], cur_pos[1] + self.rect_offset[1] + self.init_pos() def update(self): v_x, v_y = self.velocity @@ -65,8 +65,8 @@ def set_pos(self, pos): self.starting_tile_pos = pos - self.collide_rect.topleft = pos[0] * TILE_SIZE[0] + self.rect_offset[0], pos[1] * TILE_SIZE[1] + self.rect_offset[1] - self.rect.topleft = pos[0] * TILE_SIZE[0], pos[1] * TILE_SIZE[1] + self.rect.topleft = pos[0] * TILE_SIZE[0] + self.rect_offset[0], pos[1] * TILE_SIZE[1] + self.rect_offset[1] + self.collide_rect.topleft = pos[0] * TILE_SIZE[0], pos[1] * TILE_SIZE[1] def action_left(self): if self.facing != 'left': @@ -81,7 +81,9 @@ self.deltav((100.0, 0.0)) def action_up(self): - self.deltav((0.0, -100.0)) + if self.on_ground: + self.deltav((0.0, -350.0)) + self.on_ground = False def action_down(self): self.deltav((0.0, 100.0))