Мне нужна помощь относительно моей функции и игры - PullRequest
0 голосов
/ 05 мая 2020
def death_en():
    death = pygame.Surface.blit(pygame.image.load('tombstone.png'))
    if x + (WarriorSize_x * .8) == x_en:
        screenDisplay.blit(death, (x_en, y_en))

Я новичок в Python и вообще в программировании. Я начал изучать pygame и пытаюсь создать игру. Я хочу, чтобы эта функция делала другое изображение поверх убитого врага, хотя ничего не происходит, когда я подхожу к нему достаточно близко с главным героем. Теперь я не назначил ось Y, но сначала хочу убедиться, что это работает. Если нужно, могу отправить весь код.

Заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

Для проверки на коллизии используйте PyGame Rect Class . Сохраните прямоугольник для вашего игрока и прямоугольник для каждого врага, обновляя положение прямоугольника всякий раз, когда отслеживаемый элемент меняет положение. Кроме того, когда враг или игрок движется, используйте функцию Rect.colliderect(), чтобы определить, пересеклись ли два элемента на экране.

Это может быть что-то вроде:

tombstone_image = pygame.image.load('tombstone.png')

...

# Inside main loop

# Have there been any collisions?
for e_rect in all_enemy_rects:
    if ( e_rect.colliderect( player_rect ) ):
        screenDisplay.blit( tombstone_image, e_rect )
        # TODO: remove enemy from game
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...