2

さて、スペースバーなどのキーが押されたときに呼び出されるフックがあります。私がやりたいのは、これが起こったときに関数を呼び出したいということです。次のティックでは、別の関数を呼び出したいと思います。

import pygame

def func1():
    do_things
def func2():
    do_other_things

while True:
    for event in pygame.event.get():
        if event.type == pygame.K_SPACE:
            func1()
            #wait(1, func2)

明らかに #wait は置き換えられますが、1 ティックの遅延が発生する可能性があります。

これを行う方法はありますか?私が見逃した基本的な機能か、信じられないほど複雑な機能のいずれかだと思います。

4

2 に答える 2

0

func2変数を使用して、時間になったときに呼び出すかどうかをフラグします。

shouldDoFunc2 = false
while True:
    if shouldDoFunc2:
        func2()
        shouldDoFunc= false
    for event in pygame.event.get():
        if event.type == pygame.K_SPACE:
            func1()
            shouldDoFunc2()
于 2014-06-18T15:24:44.760 に答える
0
func2timer = -1
while True:
    if func2timer >= 0:
        func2timer -= 1
    if func2timer == 0:
        func2()
    for event in pygame.event.get():
        if event.type == pygame.K_SPACE:
            func1()
            func2timer = 1

(より多くのティックを待ちたい場合は、タイマーを 1 以上に調整できます)

于 2012-12-13T00:05:02.197 に答える