如何让屏幕等待用户输入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让屏幕等待用户输入相关的知识,希望对你有一定的参考价值。
在创建我的游戏时,我遇到了这个我认为在测试播放时我已经摆脱的错误,但是当我不断尝试修复它时,它使代码无效。救命!
if stage2 == 1:
screen.fill(black)
pygame.display.flip()
time.sleep(1)
screen.fill(blue)
pygame.display.flip()
time.sleep(0.25)
screen.fill(black)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run_me = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
screen.fill(red)
stage2 = stage2 + 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
screen.fill(white)
stage2 = stage2 + 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
screen.fill(blue)
stage3 = stage3 + 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_DOWN:
screen.fill(green)
stage2 = stage2 + 1
顺便说一句,颜色代码和其他所有代码都是代码,但我们只能说你可以看到它。
当我运行此代码时,屏幕一直闪烁蓝色,帮助!
答案
我不知道你尝试做什么,但我会使用while
循环检查键,直到你改变run_me
或stage2
。
if stage2 == 1:
screen.fill(black)
pygame.display.flip()
time.sleep(1)
screen.fill(blue)
pygame.display.flip()
time.sleep(0.25)
screen.fill(black)
pygame.display.flip()
while run_me and stage2 == 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run_me = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
screen.fill(red)
stage2 = stage2 + 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
screen.fill(white)
stage2 = stage2 + 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
screen.fill(blue)
stage3 = stage3 + 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_DOWN:
screen.fill(green)
stage2 = stage2 + 1
它可能无法与其余代码一起使用,但您没有显示其余代码。
当您使用sleep()
时,它不会检查键,因此您可能需要重新考虑您的代码并使用不同的东西。即。
def wait(time)
quit = False
key = None
current_time = pygame.time.get_ticks()
end_time = current_time + time*1000
while end_time > current_time and not key and not quit:
clock.ticks(25)
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit = True
elif event.type == pygame.KEYDOWN:
key = event.key
current_time = pygame.time.get_ticks()
return quit, key
if stage2 == 1:
screen.fill(black)
pygame.display.flip()
quit, key = wait(1)
if quit:
run_me = False
# - or -
#run_me = not quit
screen.fill(blue)
pygame.display.flip()
quit, key = wait(0.25)
if quit:
run_me = False
# - or -
#run_me = not quit
screen.fill(black)
pygame.display.flip()
当然,它仍然可能无法正常使用其他代码。
以上是关于如何让屏幕等待用户输入的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 xcode 将快照划分为多个片段,以便让用户与每个片段进行交互?