HSP3 プログラミングの基礎V
前へ 目次へ 次へ 

(3) 入力 2

 プログラムが実行中、何かのきっかけで別の処理をさせる仕組みを「割り込み」という。割り込みのきっかけにはいろいろなものがあるが、ここでは、「キーが押された」、「クリックされた」という入力がきっかけで別の処理に移動する命令について学習する。

◎ キー割り込み

onkey {goto | gosub} ラベル名
 キーが押されたらプログラムの実行がラベル名へ移動する。gotoまたはgosubを省略するとgotoとなる。
 割り込みはstop命令、wait命令またはawait命令での停止中に受け付けられる。
 ジャンプ後、システム変数iparamに文字コードが格納される。ほかに、システム変数wparam, lparamがある。
onkey {0 | 1}
 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命令で戻ってくるようにしている。

 


クリック割り込み

onclick {goto | gosub} ラベル名
 クリックされたらプログラムの実行がラベル名へ移動する。gotoまたはgosubを省略するとgotoとなる。
 割り込みはstop命令、wait命令またはawait命令での停止中に受け付けられる。
 ジャンプ後、システム変数iparamに文字コードが格納される。ほかに、システム変数wparam, lparamがある。
onclick {0 | 1}
 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 

 

 

inserted by FC2 system