Events 每10秒就有一个新敌人?

Events 每10秒就有一个新敌人?,events,pygame,game-development,Events,Pygame,Game Development,很抱歉,这个问题可能是重复的,但我已经搜索了很多关于这个主题,我什么都做不了。那么我怎样才能每10秒向屏幕显示一个新的敌人呢? 顺便说一句,我想用USEREVENTS实现它,因为我正在学习它们。 我真的很难处理这类事件,我无法获得它们,这就是我尝试的: a = 10000 for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_e:

很抱歉,这个问题可能是重复的,但我已经搜索了很多关于这个主题,我什么都做不了。那么我怎样才能每10秒向屏幕显示一个新的敌人呢? 顺便说一句,我想用USEREVENTS实现它,因为我正在学习它们。 我真的很难处理这类事件,我无法获得它们,这就是我尝试的:

a = 10000
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_e:
            pygame.time.set_timer(pygame.USEREVENT+1, a)
if a == 0:
    screen.blit(enemy, (enemyX, enemyY))
    a = 5000

pygame中存在一个计时器事件。用于在事件队列中重复创建。必须以毫秒为单位设置时间。e、 g:

timer_interval=10000#10秒
timer\u event=pygame.USEREVENT+1
pygame.time.set_计时器(计时器事件、计时器间隔)
注意,在pygame中可以定义客户事件。每个事件都需要一个唯一的id。用户事件的id必须介于
pygame.USEREVENT
(24)和
pygame.NUMEVENTS
(32)之间。在本例中,
pygame.USEREVENT+1
是计时器事件的事件id

在事件循环中接收事件:

run=True
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
elif event.type==计时器事件:
# [...]
通过将0传递给pygame.time.set\u timer的time参数,可以停止计时器事件


注意,您必须使用列表来管理敌人。当事件发生时,将新的敌人位置添加到列表中。循环遍历敌人。移动并画出循环中的敌人:

timer_interval=10000#10秒
timer\u event=pygame.USEREVENT+1
pygame.time.set_计时器(计时器事件、计时器间隔)
敌人名单=[]
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
elif event.type==计时器事件:
# [...]
敌人列表。追加([灌肠,灌肠])
# [...]
对于敌人列表中的敌人位置:
屏幕闪电(敌人,敌人位置)

谢谢,但每次时间间隔变为零时,计时器是否会再次自动设置为10000毫秒?还是我应该自己做?顺便问一下,pygame.NUMEVENTS是什么?@developeer是的,正如我在回答“使用pygame.time.set_timer()在事件队列中重复创建USEREVENT”时提到的那样-阅读文档也会有所帮助。