onkey命令は, キーボードが押されたときに自動的にジャンプするラベルを指定するものです.
例えば, 先程のコードは, 押されたキーがスペースキーなら, 画面上に"押された"と
表示するプログラムですが, 次のように書き換えられます.
onkey gosub *owari
stop
*owari
// iParamというシステム変数に格納された仮想キーコードが0x20(スペースキー)の場合
if (iParam == 0x20) {
mes "押された"
}
return
stick命令は, 特定のキー(よく使われるキー)が押されたことを,
指定した変数の値を調べることで判断するものです.
一方, onkey命令は, キーボードからの入力があれば, どのキーが押されたかに関わらず,
特定のラベルにジャンプするものです. ジャンプしたラベルで, どのキーが押されたかを
判断するには, システム変数のiParamを利用します. このシステム変数には, 押された
キーの仮想キーコードが代入されています(検索して調べてみてください). スペースキーの
仮想キーコードは, 16進数で20ですので, ジャンプ先ではこれを判定します.
もし, キーボードのAが押されているかどうかを判断したい場合は, 次のようにします.
Aの仮想キーコードは, 10進数で65ですので,
*owari
// iParamというシステム変数に格納された仮想キーコードが65(A)の場合
if (iParam == 65) {
mes "Aキーが押された"
}
return
stick命令はゲームを作る際によく利用されると思います.
一方, onkey命令は, ゲーム以外の実用的なソフトなどで使うと思います.
onkey命令の方が応用が利きます.
(仮想キーコード一覧 :
http://homepage3.nifty.com/ic/help/rmfunc/vkey.htm)