【发布时间】:2018-04-26 17:28:02
【问题描述】:
我正在尝试检测十字准线与我创建的目标之间的碰撞。
当检测到碰撞时,目标将从其所在的所有精灵组中消失。
如果有人可以向我解释为什么会发生这种情况并可能提出解决方案,我将不胜感激。谢谢!
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()
【问题讨论】: