Events 每10秒就有一个新敌人?
很抱歉,这个问题可能是重复的,但我已经搜索了很多关于这个主题,我什么都做不了。那么我怎样才能每10秒向屏幕显示一个新的敌人呢? 顺便说一句,我想用USEREVENTS实现它,因为我正在学习它们。 我真的很难处理这类事件,我无法获得它们,这就是我尝试的: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:
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”时提到的那样-阅读文档也会有所帮助。