В игре некоторые враги следуют за вами, и вы можете убить их, щелкнув по ним, но функция точки столкновения всегда имеет значение False и никогда не становится True, поэтому вы никогда не убьете вражеский спрайт
Код: Выделить всё
def run(self):
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
self.check_for_player_damage(event.pos)
Код: Выделить всё
def check_for_player_damage(self,mouse_pos):
for sprites in self.enemys:
if sprites.rect.collidepoint(mouse_pos):
sprites.kill()
Код: Выделить всё
self.enemys = [Enemy((randint(500,1800),randint(500,1300)),[self.all_sprites,self.enemy_sprites],self.player,self.collision_sprites) for enemy in range(0,20)]Код: Выделить всё
class Enemy(pygame.sprite.Sprite):
def __init__(self,pos,groups,player,collision_sprites):
super().__init__(groups)
self.player = player
self.collision_sprites = collision_sprites
self.image = pygame.Surface((20,30))
self.rect = self.image.get_rect(topleft = pos)
self.direction = pygame.Vector2()
self.speed = 200
Подробнее здесь: https://stackoverflow.com/questions/786 ... -correctly