pygame.time.get_ticks() 的问题
Issues with pygame.time.get_ticks()
我有一个游戏,我需要在路径中每 1350 毫秒后生成一个敌人。敌人只有在我点击开始按钮后才开始出现。
时间间隔代码:
sendEnemy = 0
def enemy_object_creation(sprite_list, health):
global sendEnemy
if pygame.time.get_ticks() >= sendEnemy:
foe = Enemy(sprite_list, health)
enemies.add(foe)
sendEnemy += 1350
现在在这里,当我在大约 5 秒后点击开始按钮时,一开始大量的敌人涌来,然后他们又开始平稳地涌来。我点击开始按钮的时间越长,开始时一起生成的敌人就越多。我不知道该怎么办。
将不胜感激。
在pygame中可以调用pygame.time.get_ticks()
, which returns the number of milliseconds since pygame.init()
was called. See pygame.time
模块获取系统时间
您需要计算第一个敌人生成的时间,即单击开始按钮的时间。
在全局命名空间中指定 sendEnemy
变量:
sendEnemy = 0
设置初始时间值,当按钮被点击时:
if clicked:
global sendEnemy
current_time = pygame.time.get_ticks()
sendEnemy = current_time
如果 sendEnemy
大于 0 但小于当前时间,则产生新的敌人:
def enemy_object_creation(sprite_list, health):
global sendEnemy
if 0 < sendEnemy <= pygame.time.get_ticks():
foe = Enemy(sprite_list, health)
enemies.add(foe)
sendEnemy += 1350
如果你想阻止敌怪生成,设置sendEnemy = 0
。
或者,您可以根据当前时间计算下一个敌人生成的时间。但是,这会导致轻微的不准确,因为代码没有按时运行,而是在几毫秒后:
def enemy_object_creation(sprite_list, health):
global sendEnemy
current_time = pygame.time.get_ticks()
if sendEnemy <= current_time:
foe = Enemy(sprite_list, health)
enemies.add(foe)
sendEnemy = current_time + 1350
我有一个游戏,我需要在路径中每 1350 毫秒后生成一个敌人。敌人只有在我点击开始按钮后才开始出现。
时间间隔代码:
sendEnemy = 0
def enemy_object_creation(sprite_list, health):
global sendEnemy
if pygame.time.get_ticks() >= sendEnemy:
foe = Enemy(sprite_list, health)
enemies.add(foe)
sendEnemy += 1350
现在在这里,当我在大约 5 秒后点击开始按钮时,一开始大量的敌人涌来,然后他们又开始平稳地涌来。我点击开始按钮的时间越长,开始时一起生成的敌人就越多。我不知道该怎么办。
将不胜感激。
在pygame中可以调用pygame.time.get_ticks()
, which returns the number of milliseconds since pygame.init()
was called. See pygame.time
模块获取系统时间
您需要计算第一个敌人生成的时间,即单击开始按钮的时间。
在全局命名空间中指定 sendEnemy
变量:
sendEnemy = 0
设置初始时间值,当按钮被点击时:
if clicked:
global sendEnemy
current_time = pygame.time.get_ticks()
sendEnemy = current_time
如果 sendEnemy
大于 0 但小于当前时间,则产生新的敌人:
def enemy_object_creation(sprite_list, health):
global sendEnemy
if 0 < sendEnemy <= pygame.time.get_ticks():
foe = Enemy(sprite_list, health)
enemies.add(foe)
sendEnemy += 1350
如果你想阻止敌怪生成,设置sendEnemy = 0
。
或者,您可以根据当前时间计算下一个敌人生成的时间。但是,这会导致轻微的不准确,因为代码没有按时运行,而是在几毫秒后:
def enemy_object_creation(sprite_list, health):
global sendEnemy
current_time = pygame.time.get_ticks()
if sendEnemy <= current_time:
foe = Enemy(sprite_list, health)
enemies.add(foe)
sendEnemy = current_time + 1350