getkeyは常に連射モード
stickはキーごとに連射のON/OFFができるが、getkeyは連射状態でしか使えない。なお、stickは第2パラメータに連射させたいキーの数値の合計を入れてやればよい。
getkeyで連射をOFFにするには、適当な変数を使ってキーが押しっぱなしかどうかのチェックをする必要がある。
下記スクリプトではkey_checkという変数を用いて、この変数にはZキーが押されたら1を代入し、この変数が1の間はZキーが押されているかのチェックを無視して次の文字が表示されないようにしている。Zキーが押されていなければ0を代入し、再度Zキーが押されたら文字を表示される。
l1="あ" l2="た" i=0 : repeat 30 j=0 : repeat 40 *push wait 1 getkey gk,90 if gk=0 : key_check=0 if (gk=1)&(key_check!=1) { key_check=1 pos j,i if (i=0)&(j=0) : mes l1 : else : mes l2 } else : goto *push j+=16 : loop i+=16 : loop end
カーソル等の移動のように、押しっぱなしにしていても一定時間経過後に処理がされるようにしたければ、押した時のチェック変数に大きめの数値を入れて、押しっぱなしの間、その数値が減っていくようにすれば実現できる。