我遇到了一个问题,在python中突破for循环,使用pygame。具体来说,我试图突破释放密钥的循环。例如,当按住"W“键时,代码应该执行,但在释放"W”时立即中断循环。
我尝试过使用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" 发布于 2017-02-05 02:29:30
您必须不使用for循环,而while 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 -https://stackoverflow.com/questions/42047904
复制相似问题