我有个小问题。。。你知道吗
是不是有一个关于pygame.time.set\u计时器()? 你知道吗
我已经让它运行正常,但问题是,我需要定时器复位回0每当一个特定的行动是执行。当它现在运行时,计时器将每秒触发movedownauto事件(无论发生什么),但我希望它在按键时重置,以便在按键触发movedownauto事件后等待一秒钟。 如果有什么东西可以放进事件类型==用户事件:节。你知道吗
以下示例↓
pygame.time.set_timer(USEREVENT, 1000)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.KEYDOWN:
# Figure out if it was an arrow key. If so
# adjust speed.
if event.key == pygame.K_LEFT:
x_speed = -40
elif event.key == pygame.K_RIGHT:
x_speed = 40
elif event.key == pygame.K_DOWN:
y_speed = 40
# User let up on a key
elif event.type == pygame.KEYUP:
# If it is an arrow key, reset vector back to zero
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_speed = 0
elif event.key == event.key == pygame.K_DOWN:
y_speed = 0
# Move the object according to the speed vector.
x_coord += x_speed
y_coord += y_speed
if event.type == USEREVENT:
movedownauto(screen, x_coord, y_coord)
else:
drawcharacter(screen, x_coord, y_coord)
clock.tick(tickspeed)
pygame.display.flip()
谢谢!你知道吗
如果只想在按键后触发
USEREVENT
,请从顶部移除pygame.time.set_timer(USEREVENT, 1000)
行,并在elif event.type == pygame.KEYDOWN:
块中添加pygame.time.set_timer(USEREVENT, 1000, True)
。你知道吗如果将
pygame.time.set_timer
的第三个参数设置为True
,则事件将只添加到事件队列一次(请注意,此功能仅在pygame版本2中可用)如果您希望
USEREVENT
定期发生,如果KEYDOWN
发生,只需“重置”计时器,只需移除计时器并再次添加。你知道吗相关问题 更多 >
编程相关推荐