HSP3 プログラミングの基礎V | |
(3) 入力 2
プログラムが実行中、何かのきっかけで別の処理をさせる仕組みを「割り込み」という。割り込みのきっかけにはいろいろなものがあるが、ここでは、「キーが押された」、「クリックされた」という入力がきっかけで別の処理に移動する命令について学習する。
◎ キー割り込み
キーが押されたらプログラムの実行がラベル名へ移動する。gotoまたはgosubを省略するとgotoとなる。
onkey {goto | gosub} ラベル名
割り込みはstop命令、wait命令またはawait命令での停止中に受け付けられる。
ジャンプ後、システム変数iparamに文字コードが格納される。ほかに、システム変数wparam, lparamがある。0で割り込みを停止し、1で再開する。
onkey {0 | 1}
キーを押すとメッセージを表示する。
onkey goto *lab1 stop *lab1 mes "キーが押されました。" mes iparam mes wparam mes lparam stop
何かキーを押すとメッセージが表示される。
システム変数iparamとwparamはキーコードが表示されるようである。lparamはよくわからない(ヘルプには「Windowsメッセージとして渡されたパラメータ」と書かれている)。
処理の実行中の割り込みをみてみる。
onkey gosub *lab1 randomize repeat 100 x1 = rnd(640) y1 = rnd(480) x2 = rnd(640) y2 = rnd(480) circle x1, y1, x2, y2, 0 wait 10 loop stop *lab1 mes "キーが押されました。" return
100この円が0.1秒ごとに描画される。描画中にキーを押すとメッセージが表示される。円の描画は継続する。
割り込みでラベルへ移動した後、戻ってくるように「onkey gosub」命令としている。また、移動先の最後はreturn命令で戻ってくるようにしている。
◎ クリック割り込み
クリックされたらプログラムの実行がラベル名へ移動する。gotoまたはgosubを省略するとgotoとなる。
onclick {goto | gosub} ラベル名
割り込みはstop命令、wait命令またはawait命令での停止中に受け付けられる。
ジャンプ後、システム変数iparamに文字コードが格納される。ほかに、システム変数wparam, lparamがある。0で割り込みを停止し、1で再開する。
onclick {0 | 1}
クリックするとメッセージを表示する。
onclick goto *lab1 stop *lab1 mes "クリックされました。" mes iparam stop
クリックするとメッセージが表示される。
処理の実行中の割り込みをみてみる。
onclick gosub *lab1 randomize repeat 100 x1 = rnd(640) y1 = rnd(480) x2 = rnd(640) y2 = rnd(480) circle x1, y1, x2, y2, 0 wait 10 loop stop *lab1 mes "キーが押されました。" return
100この円が0.1秒ごとに描画される。描画中にキーを押すとメッセージが表示される。円の描画は継続する。
2006 © Hiroshi Masuda |