Платформер Pygame: игрок прилипает к сложенным плиткам во время столкновенияPython

Программы на Python
Anonymous
Платформер Pygame: игрок прилипает к сложенным плиткам во время столкновения

Сообщение Anonymous »

Я делаю 2D-платформер в Pygame. Мой игрок имеет скорость X и Y и использует простой прямоугольник (pygame.Rect) для обнаружения столкновений. Проблема возникает, когда игрок прыгает на край вертикальной стены, сложенной из сложенных плиток.
  • Когда игрок касается края верхних плиток, он прилипает к ней.
  • Это происходит только тогда, когда он касается верхних плиток, а не нижней, и все еще нажимает клавишу (A, D, ВЛЕВО, ВПРАВО), что заставляет игрока двигаться по плитке. направлении.
  • Игрок, прилипший к плитке, по-прежнему может двигаться, отжимая клавишу, прыгая или двигаясь в противоположном направлении.
Полный код доступен в моем общедоступном репозитории GitHub: https://github.com/xKZPRx/whiskers-journey.git
Спасибо за помогаю!
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

Вернуться в «Python»