« プログラミング講座(24) 人が打つ次の手の処理 | トップページ | Small Basic ×○ゲーム v0.4 »

2010/07/24

プログラミング講座(25) イベント処理

Intellisenseevent_2

ここでちょっと「イベント」について説明しておきます。前回の人が打つ処理 Human() の処理の始めに、

GraphicsWindow.MouseDown = OnMouseDown

という行(308行)がありますが、これはマウスボタンを押したときに一時的に何を行うか指定しています。マウスボタン操作、キーボード操作、タイマーなどの事象(event)について一時的な処理を指定できます。上記の例では、マウスの左ボタンが押されたときの処理として OnMouseDown というサブルーチンを指定しています。

以下のリスト8に沿って、詳細を説明します。

310行目で bNotClicked というフラグに "True" (真) を入れ、311~312行では、そのフラグを見ながら無限ループしています。イベントの処理がなければ、このループを抜け出ることはありませんが、308行で指定したサブルーチン OnMouseDown の中ではマウスの座標を取り出し bNotClicked フラグに "False" (偽)を入れているので、マウスが押されると、このループを抜け出すことができます。要するに311~312行はマウスが押されるまでループして待っているわけです。

ここで重要なのが312行の Program.Delay() です。この行がないと、コンピュータはただただループを回るためにCPUを消費してしまいます。この Delay を指定することで CPUの時間を解放し、システムや他のプログラムにCPUを利用する余裕を与えることができます。この囲碁プログラム自体には意味のないことですが、システム全体としてはバランスが取れるのです。

【リスト8 サブルーチン Human() の冒頭部分】

307 Sub Human
308 GraphicsWindow.MouseDown = OnMouseDown
309 While "True"
310  bNotClicked = "True"
311  While bNotClicked
312   Program.Delay(100)
313  EndWhile
314  GetPosition()

(つづく)

|

« プログラミング講座(24) 人が打つ次の手の処理 | トップページ | Small Basic ×○ゲーム v0.4 »

Small Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(25) イベント処理:

« プログラミング講座(24) 人が打つ次の手の処理 | トップページ | Small Basic ×○ゲーム v0.4 »