Как мне создать столкновение со спрайтами?

#python #python-3.x #pygame

#python #python-3.x #pygame

Вопрос:

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

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

Ответ №1:

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

Ответ №2:

В конечном итоге вам нужно будет прочитать документацию 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