Я работаю над простым проектом pygame, и в настоящее время в нем падают бомбы, которые падают из верхней части экрана и направляются в нижнюю часть экрана. Если игрок попадает в бомбу, он умирает. До сих пор все работает хорошо. Проблема в том, что когда бомба миновала игрока, но еще не покинула экран, она все равно убьет игрока. Это означает, что бомба минует нижнюю часть игрока, но если вы пересечете ее, прежде чем она пересечет нижнюю часть экрана, вы умрете. Он мой код:
if player.rect.y < thing_starty + thing_height:
if player.rect.x > thing_startx and player.rect.x < thing_startx + thing_width or player.rect.x + 28 > thing_startx and player.rect.x + 28 < thing_startx + thing_width:
gameOver = True
значения следующие:
thing_startx = random.randrange(0, S_WIDTH)
thing_starty = -300
thing_speed = 3
thing_width = 128
thing_height = 128
значение player.rect.x колеблется от 120 до 500 в зависимости от того, где находится игрок на экране. (Экран также будет прокручиваться слева направо по мере вашего движения.) Число 28 зависит от ширины изображения персонажа.
код падающего объекта следующий:
if thing_starty > S_HEIGHT:
pygame.mixer.Sound.play(bomb_sound)
thing_starty = 0 - thing_height
thing_startx = random.randrange(0, S_WIDTH)
dodged += 1
thing_speed += .5
Я работал над этим около недели и не добился прогресса. Спасибо за любую помощь.