1
私はpygameを使ってゲームを作成しています。 whileループを作成し、この機能が必要になるたびに条件が真になったら、これを簡単に行うことができますが、実際にこれを行うために使用できる関数があればはるかに良いでしょう。私はここで、この関数を書き、それが機能しなかったことが判明:ブール値がtrueになるまで待つ関数を作成する方法
def wait_until(condition):
while True:
Quit() #These three lines are required to allow for the program to continue running
pygame.display.update()
CLOCK.tick(FPS)
if condition(): break
私は、この関数を呼び出すとき、その瞬間における条件の状態が変数「状態」に保存されての結果であると信じていますブール値として。それ以降は変更されても何もしません。例えば:
block = classes.sprite.Sprite(x = 50, y = 50)
wait_until(block.distance_to(pygame.mouse.get_pos()) <= 100)
だけマウスがさらにより100個のピクセル離れた場合関数にFalse
を渡すのと同じであろう。
私はこの問題を解決するために何ができますか、本当に私を困らせてしまったし、私がしたいことをする機能を作るために何ができるか分からない。問題の
すべてのヘルプは、これはあなたの状態を評価するため、必要に応じて何度でも呼び出すことができる機能を、作成し
ありがとう、これは問題を解決します。私はラムダを使ったことがありませんでしたので、私は知らなかったでしょう。 –
@GeorgeWillcoxこの動作はラムダには結びつかないことに注意してください - あなたは、関数に条件を書いて、関数の名前を 'wait_until(。 ..) '。あなたが効果的にやっていることは、条件を一度評価して結果を渡すのではなく、後であなたの関数によって評価される条件を囲むことなのでどちらのアプローチも効果的です。 –