- Когда игрок касается края верхних плиток, он прилипает к ней.
- Это происходит только тогда, когда он касается верхних плиток, а не нижней, и все еще нажимает клавишу (A, D, ВЛЕВО, ВПРАВО), что заставляет игрока двигаться по плитке. направлении.
- Игрок, прилипший к плитке, по-прежнему может двигаться, отжимая клавишу, прыгая или двигаясь в противоположном направлении.
Спасибо за помогаю!
def handle_collisions(self):
player = self.level.player
player.on_ground = False
# Player collision with tiles
for tile in self.level.tiles:
if player.rect.colliderect(tile.rect) and tile.solid:
# Vertical collisions
if player.prev_rect.bottom = tile.rect.bottom:
player.pos_y = tile.rect.bottom
player.vel_y = 0
# Horizontal collisions
elif player.prev_rect.right = tile.rect.right:
player.pos_x = tile.rect.right
# Player collisions with level boundaries
if player.pos_x = self.level.width - player.rect.width:
player.pos_x = self.level.width - player.rect.width
if player.pos_y
Подробнее здесь: https://stackoverflow.com/questions/798 ... -collision
Мобильная версия