使用pygame事件打破python for循环
我在python中遇到了一个问题,使用pygame打破了for循环。具体来说,我试图在释放密钥时打破循环。例如,当按下键“W”时,代码应该执行,但当释放“W”时,代码立即中断循环 我曾尝试使用使用pygame事件打破python for循环,python,for-loop,event-handling,pygame,Python,For Loop,Event Handling,Pygame,我在python中遇到了一个问题,使用pygame打破了for循环。具体来说,我试图在释放密钥时打破循环。例如,当按下键“W”时,代码应该执行,但当释放“W”时,代码立即中断循环 我曾尝试使用pygame.key.get_pressed()和if event.type==KEYUP:,但我似乎无法正确使用它。有人能帮忙吗 while 1: for event in pygame.event.get(): if event.type == pygame.QUIT:
pygame.key.get_pressed()
和if event.type==KEYUP:
,但我似乎无法正确使用它。有人能帮忙吗
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
doQuitStuff()
elif event.type == pygame.MOUSEBUTTONDOWN:
doMouseButtonStuff()
elif event.type == KEYDOWN:
if event.key == pygame.K_p:
doPStuff()
elif event.key == pygame.K_e:
doEStuff()
elif event.key in foo:
doFooStuff()
for i in xrange(100):
doThisStuffOnlyIfKeyInFooIsHeldDown() #This for loop finishes
#execution even if I release the
#key in "foo"
您必须不使用
for
循环,而为True
将作为循环
run_loop = False
i = 0
while True:
# - events -
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == pygame.K_w:
# start loop
run_loop = True
i = 0
elif event.type == KEYUP:
if event.key == pygame.K_w:
# stop loop
run_loop = False
# - updates -
if run_loop and i < 100:
i += 1
doThisStuffOnlyIfKeyInFooIsHeldDown()
# - draws -
run\u loop=False
i=0
尽管如此:
#-事件-
对于pygame.event.get()中的事件:
如果event.type==KEYDOWN:
如果event.key==pygame.K_w:
#起动回路
运行循环=真
i=0
elif event.type==KEYUP:
如果event.key==pygame.K_w:
#停止循环
运行循环=错误
#-更新-
如果运行_循环且i<100:
i+=1
DothisStuffOnlyFkeyInfooishelddown()
#-抽签-
对于循环,您必须不使用,但如果再次执行:
和main,而
将用作循环。谢谢-您再次帮助了我!