原因を考えたところ、onkeyなどの割り込み命令は、awaitなどが呼ばれたときに判定をすると書いてあったので、
#include "d3m.hsp" onkey gosub *KeyEvent repeat color 255,255,255 : boxf color 0,0,0 : pos 0,0 : mes d3getfps() await 1 loop *KeyEvent return
割り込み命令が呼ばれてしまうと、ウェイトを無視して先に進んでしまうのではないかと考えました。
なので、以下のように書いてみたところ、キーを押した際にウェイトを無視して進むことが確認できました。
await 1のような小さな値であれば、以下のように、
onkey gosub *KeyEvent wait 10000 mes "待った?" stop *KeyEvent return
キーイベント内に同じ分だけウェイトを入れることでFPSを安定させることができますが、
ウェイトが大きいと上記のようになり、そうもいきません。
これは、バグなのでしょうか、仕様なのでしょうか。
#include "d3m.hsp" onkey gosub *KeyEvent repeat color 255,255,255 : boxf color 0,0,0 : pos 0,0 : mes d3getfps() await 16 loop *KeyEvent await 1 return
それによって、割り込みイベント内にウェイト処理を入れるかどうかを検討するので、
どなたかご教授お願いします。