Я пытаюсь обнаружить столкновение между перекрестием и целью, которую я создал.
При обнаружении столкновения цель исчезает из всех входящих в нее групп спрайтов.
Если кто-то может объяснить мне, почему это происходит, и, возможно, предложить решение, я был бы признателен. Спасибо!
class Cross(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = crosshairImage
self.rect = crosshairImage
self.shooting = 0
def update(self):
position = pygame.mouse.get_pos()
self.rect = position
def shoot(self,attack):
if not self.shooting:
self.shooting = 1
return self.rect.colliderect(attack.rect)
def undo(self):
self.shooting = 0
class Target0(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = targetImage
self.rect = targetImage
self.hp = 1
def update(self):
position0 = screen.blit(targetImage, (181.75,204))
self.rect = position0
while running:
milliseconds = clock.tick(FPS)
playtime += milliseconds/1000.0
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
running = False
elif event.type == MOUSEBUTTONDOWN:
if cross.shoot(target0):
target0.kill()
elif event.type == MOUSEBUTTONUP:
cross.undo()
allsprites.update()
screen.blit(background, (0,0))
allsprites.draw(screen)
pygame.display.flip()
text = "FPS: {0:.2f} Playtime: {1:.2f}".format(clock.get_fps(), playtime)
pygame.display.set_caption(text)
pygame.display.flip()