Python 在Pygame中延迟敌人角色的出现
我正在Pygame中构建一个太空入侵者风格的游戏。敌人一次出现一个,每个循环都会发出与之相关的声音。实际上,这是一个听觉学习的心理学实验 我想在一个角色被杀后在游戏中延迟5秒,所以当一个角色被射杀时,他们的声音会很快消失,玩家必须等待5秒,等待下一个角色+声音的出现 这是我游戏类中的脚本,用于一次生成一个敌人。我正在使用psychopy的核心模块来测量时间,但我似乎不知道如何在不冻结游戏的情况下延迟敌人的攻击,即仍然允许玩家在不同的攻击集之间移动:Python 在Pygame中延迟敌人角色的出现,python,pygame,clock,timing,Python,Pygame,Clock,Timing,我正在Pygame中构建一个太空入侵者风格的游戏。敌人一次出现一个,每个循环都会发出与之相关的声音。实际上,这是一个听觉学习的心理学实验 我想在一个角色被杀后在游戏中延迟5秒,所以当一个角色被射杀时,他们的声音会很快消失,玩家必须等待5秒,等待下一个角色+声音的出现 这是我游戏类中的脚本,用于一次生成一个敌人。我正在使用psychopy的核心模块来测量时间,但我似乎不知道如何在不冻结游戏的情况下延迟敌人的攻击,即仍然允许玩家在不同的攻击集之间移动: if len(self.enemyA_list
if len(self.enemyA_list) == 0 and len(self.enemyB_list) == 0 and len(self.enemyC_list) == 0:
self.enemy = Enemy()
#Increase speed, variability of character onset based on how many characters have been created
if len(self.dead_enemies) == 2 or len(self.dead_enemies) == 3:
self.enemy.x_speed *= 1.75
self.enemy.y_speed *= 1.75
elif len(self.dead_enemies) == 4:
self.enemy.x_speed *= 2
self.enemy.y_speed *= 2
timer = core.Clock()
timer.add(2)
if timer.getTime()>=0:
timer = 0
self.enemy.generate() #generate enemy offscreen and start playing sound
if self.enemy.enemy_type == 'A':
self.enemyA_list.add(self.enemy)
self.enemy.sound.out() #play enemy sound
self.enemy.env.play()
if self.enemy.enemy_type == 'B':
self.enemyB_list.add(self.enemy)
self.enemy.sound.out()
self.enemy.env.play()
if self.enemy.enemy_type == 'C':
self.enemyC_list.add(self.enemy)
self.enemy.sound.out()
self.enemy.env.play()
self.all_sprites_list.add(self.enemy)
在主游戏循环中,您只需创建一个变量,跟踪自上次繁殖以来的时间。 声明一个变量。 上次时间=0 然后,每次通过循环向lastTime添加1。 上次时间+=1 然后你需要检查距离上次产卵有多长时间了。此外,您还需要决定两次繁殖之间的间隔时间。 所以
这将延迟每个产卵。请注意,这将需要一个FPS和一个FPS时钟 你能不能要求玩家在新玩家诞生时激活一些bool,并让bool切换为真,而不是运行上面的整个区块,因为玩家不在aliveI可以这样做来缩短一些东西,但我仍然必须运行大部分区块,播放敌人类型产生的声音和记录。这仍然不能解决我的问题,即延迟角色开始而不延迟所有其他游戏功能。我不太理解你的代码,但为什么不在角色开始代码上设置一个计时器,然后设置一个在死亡时启动的计时器。@user3330277在Sack overflow,我们投票或接受答案,而不仅仅是说谢谢,但没问题
if timeElapsed == FPS * secondsBetweenSpawns:
generateEnemy()