[英]How can I make a invincibility timer in pygame?
我的游戏中有一个星星加电,当它与玩家发生碰撞时,我想要一个启动的“无敌计时器”。 这个计时器基本上会关闭所有碰撞 5 秒,在 5 秒结束后,它们会再次打开。 有没有更好的方法来实现这一点,如果没有,我怎么能在 pygame 中写这个?
使用 boolean => invisibility = false 一旦玩家与星星加电发生碰撞,将其设置为 true。
然后在您的 if else 语句或循环中,state 如果 invisibility = true,则不会发生冲突。
在 pygame 中存在一个定时器事件。 使用pygame.time.set_timer()
在事件队列中重复创建USEREVENT
。 时间必须以毫秒为单位。
发生碰撞时使玩家不可见并启动计时器事件。 当你得到计时器事件时让玩家可见:
player_visible = True
timer_interval = 5000 # 5 seconds
timer_event_id = pygame.USEREVENT + 1
run = True
while run :
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == timer_event_id:
player_visible = True
# collision detection
# [...]
if collide:
player_visible = False
pygame.time.set_timer(timer_event_id, timer_interval, 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.