0

vPython を使用して何かをプログラミングしようとしています。一種のゲームですが、操作がうまくいきません。

while True:
    "verarbeitet Maus/Tastatureingaben"        
    if scene.kb:                        # wenn Aktion auf der Tastatur...
        druck=scene.kb.getkey()         # ...Tastendruck speichern!
        # ----Aktionen bei bestimmten Tasten---- #
        if druck == "w":            # vor
            self.bewegen(self.axis)
        elif druck == "s":          # zurück
            self.bewegen(-self.axis)

したがって、2 つの主な問題があります。

  1. 2 つのキーを同時に押すことはできません。最後に押されたものだけが機能しています。

  2. MS Windowsキーを約 5 秒間押し続けると、アクションの実行時間が長くなります (これは、「ヒット」するたびに少し休憩するためだと思います)。

あなたが私を助けてくれることを願っています!

4

2 に答える 2

1

-u オプションを使用してスクリプトを実行しようとしましたか:

python -u myscript.py

このオプションに関するドキュメントはこちらにあります

ドキュメントに従って:

Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, 
also put stdin, stdout and stderr in binary mode.
于 2014-03-21T17:48:06.103 に答える
1

vPython についてはよくわかりません。キーが押されている間、scene.kb は true を返しますか? もしそうなら、あなたはこのようなことをすることができます:

keys = []
while scene.kb:
    keys.append(scene.kb.getkey())

if "w" in keys and "s" in keys:
    // do something
于 2014-03-21T17:16:31.440 に答える