Функция точки столкновения работает неправильно [дубликат]Python

Программы на Python
Anonymous
Функция точки столкновения работает неправильно [дубликат]

Сообщение Anonymous »

Я делаю свою первую игру с картой на pygame.
В игре некоторые враги следуют за вами, и вы можете убить их, щелкнув по ним, но функция точки столкновения всегда имеет значение 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

Вернуться в «Python»