Как бы я сделал антиспрайтовое столкновение? - PullRequest
0 голосов
/ 18 апреля 2019

Так как моя игра будет включать спрайтов, сражающихся друг с другом, я думал о добавлении чего-то, что в основном мешает им проходить друг через друга, но я не уверен, как я могу это сделать.

Я пытался исследовать этот сайт, если бы мог найти решение своей проблемы, но пока не нашел ни одного

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Вам нужно будет прочитать документацию по pygame и / или проверить некоторые учебники в конце концов.Вы столкнетесь с множеством проблем.Написание игры может быть неприятным, есть много проб и ошибок.Но чтобы дать вам представление о том, как это работает, вот пример платформера, который я кодировал.Я сделал небольшие изменения, такие как *.2, потому что это выглядело более естественно:

hits = pygame.sprite.spritecollide(player, mobs, False, pygame.sprite.collide_circle)
if hits:
    if player.rect.right < mob.rect.centerx-mob.rect.width*.2:
        player.rect.right = mob.rect.left
    elif player.rect.left > mob.rect.centerx+mob.rect.width*.2:
        player.rect.left = mob.rect.right
0 голосов
/ 18 апреля 2019

Трудно помочь без некоторого контекста, но, вероятно, вы захотите начать с рассмотрения существующих функций коллизий, таких как spritecollide или немного более специфичных collide_rect / collide_circle / collide_mask (в зависимости от того, насколько сложны ваши спрайты и насколько точны вы хотите коллизииобнаружение будет) (https://www.pygame.org/docs/ref/sprite.html#pygame.sprite.spritecollide)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...