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)

所以主要有两个问题:

  1. 不能同时按下两个键。只有最新按下的那个在工作。

  2. 如果按住一个键大约 5 秒,则该动作将花费更长的时间(我认为这是因为MS Windows在每次“击中”后都会稍作休息)。

我希望你能帮帮我!

4

2 回答 2

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 回答
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 回答