[英]how to blit a function to screen after keydown event (pygame)
我试图通过按空格键使我的屏幕从介绍屏幕切换到说明屏幕。 但是,当您按下空格键时,说明屏幕只会在您按下时保持亮起
for event in pygame.event.get():
intro_screen()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
instructions()
pygame.display.flip()
我该如何解决这个问题才能在屏幕上持续显示? 另外,我可以使用相同的键来显示不同的功能吗?
我是一个pygame新手:)
代码需要维护显示的状态。 目前,主循环似乎总是绘制“介绍屏幕”,并且如您所说,仅在空格键事件上绘制“说明屏幕”。 这也被放入事件处理程序代码中,它可能应该在该部分之外。
for event in pygame.event.get():
intro_screen() # <-- Draw intro
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
instructions() # <-- Draw Instructions
pygame.display.flip()
最好将要显示的屏幕存储在变量中。
current_screen = 'introduction' # enumerated type would be better
done = False
# main loop
while not done:
# handle events
for event in pygame.event.get():
if ( event.type == pygame.QUIT ):
done = True
elif ( event.type == pygame.KEYDOWN ):
if ( event.key == pygame.K_SPACE ):
current_screen = 'instructions' # switch screens
elif ( event.key == pygame.K_BACKSPACE ):
current_screen = 'introduction' # switch screens back
# paint the screen
if ( current_screen = 'introduction' ):
intro_screen() # draw the introduction screen
elif ( current_screen = 'instructions' ):
instructions() # draw the instructions
else:
# TODO - more screen types
pass
pygame.display.flip()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.