gpt4 book ai didi

python - Pygame 损坏后闪烁 Sprite

转载 作者:太空宇宙 更新时间:2023-11-03 17:42:51 27 4
gpt4 key购买 nike

我正在使用 pygame 继续我的工作,并且我正在处理玩家 Sprite ,特别是当它受到伤害时。我想做的是,当玩家受到敌人伤害时,我希望玩家 Sprite 闪烁 2-3 次,让玩家有一两秒的时间从受到伤害的地方移动。我有一个生命条(3颗心),我设置它以便每次敌人和玩家 Sprite 之间发生碰撞时,它都会删除1。我正在使用kill()函数(我知道这是错误的,因为它完全删除 Sprite )。我怎样才能让 Sprite 闪烁一两秒。任何帮助或建议将不胜感激。谢谢。

    enemy_hit_list = pygame.sprite.spritecollide(self, self.level.enemy_list, False)
if enemy_hit_list:
self.health -= 1
self.kill()

最佳答案

您必须通过添加一个额外的属性来专门化您的类,该属性将显示闪烁状态。 “kill”方法会从任何组中删除 Sprite - 我无法从上面的代码片段中知道您是否是这样,以及效果是什么。如果您使用一个组来实际绘制玩家(自己),那么将其从那里删除并不是最好的做法。

例如,您可以在 Sprite 上有一个“hit_countdown”属性,并使用它的更新方法相应地更改其图像,并测量它恢复正常的时间:

class Player(Sprite):
def __init__(self, ...):
...
self.hit_countdown = 0
...

def update(self, ...):
if self.hit_coundown:
if not hasattr(self, original_image):
self.original_image = self.image
if self.hit_countdown % 2:
self.image = None # (or other suitable pre-loaded image)
else:
self.image = self.original_image
self.hit_countdown = max(0, self.hit_countdown - 1)
super(Player, self).update(...)
# and on your hit code above:
...
if enemy_hit_list:
self.health -= 1
self.hit_countdown = 6

关于python - Pygame 损坏后闪烁 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30245155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com