gpt4 book ai didi

python - 如何让一个物体拥有暂时的无敌?

转载 作者:行者123 更新时间:2023-11-28 20:24:32 25 4
gpt4 key购买 nike

我正在用 pygame 制作游戏,我需要我的飞船在与小行星碰撞后大约 3 秒内免疫。我尝试了我发现的每一个功能,但它没有用。

这是我的代码的碰撞部分:

if collision == True:
ship_game = ship_destroyed
lifes -= 1;

然后我有这部分:

if collision:
pi = True
collision = False
pygame.time.delay(1000)

我在碰撞的情况下使用这个名为 pi 的变量将船放在屏幕中间:

if pi == True:
ship_game = ship
pos_ship={'x': WScreen/2, 'y': HScreen/2}
pi = False

我认为这足以让您了解我的问题。谢谢:)

最佳答案

这可以通过引入变量 collision_immune 来实现,您可以在检测到碰撞时将该变量设置为 True。同时,您在变量 collision_time 中记录最后一次碰撞的时间。您可以从 pygame.time.get_ticks() 获取时间。然后在主循环的适当部分(上面未显示),您可以检查自上次碰撞以来的时间是否超过 3 秒并将 collision_immune 重置为 False。这可能看起来像这样

if collision == True:
ship_game = ship_destroyed
lifes -= 1;
collision_immune = True
collision_time = pygame.time.get_ticks()

然后在某个地方,也许在主循环的开始,你把

if pygame.time.get_ticks() - collision_time > 3000:    # The time is in ms.
collision_immune = False

现在您可以在您的游戏逻辑中使用变量 collision_immune 来确定这艘船是否不受最近碰撞的影响。

游戏愉快! :)

关于python - 如何让一个物体拥有暂时的无敌?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119464/

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