ゲームプログラミングのはなし9
【ゲームプログラミングのはなし9】
そういえば、今改めて思うと最近のプログラミング入門書では「キー入力」のサンプルコードなんてサッパリ見かけなくなりましたね。
WEBアプリならそもそもキー入力なんて関係なく、ブラウザから送られてきたテキストに反応するプログラムだし、スマホアプリならタッチスクリーンだし。
さて、入力についての基本は、コンピュータにとっては外部の機器であるキーボードかコントローラ、はたまたタッチスクリーンが押された時に電気信号がOSに向かって送られているので、その信号をキャッチし、信号の中身をみて、キャラクターを右に動かすなり、ジャンプさせるなりするようにプログラミングする、という流れになります。
そして、最初の受信がうまくいくかどうかがこの入力部分のキモで、完全にハードウェアとOSの仕様に身をゆだねるしかないので、OSのリファレンスを調べてそこに書いてある通りにするしかないんですね。
キーボードならまだうまくいかないことはないのですが、コントローラはOSにとっては別に知ったこっちゃないシロモノなので、そもそも機器を認識しているか、信号を受信しているか、というハードウェアの対話レベルのチャネルの確立がヒヤヒヤものです。まあ、ゲームに力を入れているWindowsでは便利になっていますけども。
それに比べると、マウスやスマホのタッチスクリーンは比較的確実&シンプルで楽ですね。
画面内でポチッとされた位置(X座標、Y座標)を教えてくれるだけですから。
イメージとしては、常にポチる位置を監視している箱があって、そこを見ればポチったX座標とY座標が取り出せるので、その座標を見て、「ああ、STARTが押されたんだな」と判定すれば良い、というものです。(続く)