#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