Итак, я пытаюсь создать игру, в которой пришельцы появляются из 3 определенных мест.Каждый инопланетянин будет случайным образом появляться в одном из 3. Но всегда будет хотя бы один инопланетянин, который будет появляться поверх другого.Я хочу удалить этого инопланетянина и вызвать его случайно в другой точке появления.Если он пуст, он останется, если не будет повторен процесс.Дело в том, что я не могу найти способ обнаружить столкновение двух объектов, находящихся в одной и той же группе.
Я только начал изучать Pygame, поэтому 1) Мой вопрос может быть глупым 2) Мой способ нереста, вероятно, оченьнеэффективно
Вот класс Alien:
class Alien(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((80,60))
self.image.fill(GREY)
self.rect = self.image.get_rect()
spawn_point1 = x1,y1 = -30, 70
spawn_point2 = x2,y2 = -30, 150
spawn_point3 = x3,y3 = -30, 230
random_spawn = random.choice([spawn_point1,spawn_point2,spawn_point3])
self.rect.center = random_spawn
self.speedx = 10
def update(self):
spawn_point1 = x1,y1 = -30, 70
spawn_point2 = x2,y2 = -30, 150
spawn_point3 = x3,y3 = -30, 230
self.speedx = 10
random_spawn = random.choice([spawn_point1,spawn_point2,spawn_point3])
self.rect.x += self.speedx
if self.rect.x > WIDTH + 20:
self.rect.center = random_spawn
А вот часть, где я обнаруживаю столкновение (эта часть не работает)
aliens_col = pygame.sprite.groupcollide(aliens, aliens, True, False)
for i in aliens_col:
alien = Alien()
aliens.add(alien)
all_sprites.add(aliens)