Changeset 200:4e3f9cb49489


Ignore:
Timestamp:
04/06/11 20:26:17 (12 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
Phase:
public
Rebase:
30353630336265326632343836613834366462633031646135343737343461323035623766393832
Message:

Fix bug in jump to tile top logic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • skaapsteker/sprites/player.py

    r192 r200  
    9494            best_move = (0, 0)
    9595            clip_area = 0
    96             for obj in self._last_collide:
     96            for obj in self._last_collide[:]:
     97                if not obj.collide_rect.colliderect(self.collide_rect):
     98                    # Prune stale objects from the list
     99                    self._last_collide.remove(obj)
     100                    continue
    97101                clip = obj.collide_rect.clip(self.collide_rect)
    98102                clip_area += clip.width * clip.height
    99103                if (obj.floor or obj.block) and \
    100                         clip.width > obj.collide_rect.width /2 and \
    101                         self.collide_rect.bottom < obj.collide_rect.top + obj.collide_rect.height / 3:
     104                        clip.width > TILE_SIZE[0] / 2 and \
     105                        self.collide_rect.bottom < obj.collide_rect.top + TILE_SIZE[1] / 3:
    102106                   delta = self.rect.bottom - self.collide_rect.bottom
    103107                   self.collide_rect.bottom = obj.collide_rect.top - 1
    104108                   self.rect.bottom = self.collide_rect.bottom + delta
    105                    break
     109                   self.init_pos()
     110                   return  # Jump out of this case
    106111            min_area = clip_area
    107112            for attempt in [(0, 2), (2, 0), (-2, 0), (2, 2), (-2, 2)]:
Note: See TracChangeset for help on using the changeset viewer.