Платформер 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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