BREW ブロック崩しゲーム 〜 BREW C++ ゲームプログラミング 〜
キー イベントの処理
キー イベントの処理は、OnKey メンバ関数で行います。
このブロック崩しでは、アプリケーションの状態に応じてそれぞれのキーに対応する挙動が異なりますが、基本的には次のようになっています。
// キー ハンドラ Bool Block::OnKey(UInt16 key) { // ここにキーが押されたときの処理を記述します。 ... switch(key) { case AVK_4: case AVK_LEFT: if (_racket.racket.GetLeft() > _gameArea.GetLeft()) { _racket.velocity.Set(-_racketSpeed, 0); } break; case AVK_5: case AVK_SELECT: _racket.velocity.Set(0, 0); break; case AVK_6: case AVK_RIGHT: if (_racket.racket.GetRight() < _gameArea.GetRight()) { _racket.velocity.Set(_racketSpeed, 0); } break; default: break; } return true; ... return false; }
押されたキー コードが変数 key に保持されていますので、その値に応じて処理を分岐します。実際のキーとキー コードとの対応関係は、『BREW API リファレンス』 - 「キーコード」を参照してください。
ポイントは、そのキーを受け付けたら true を返し、逆に無視したら false を返すことです。無視したキー イベントは BREW により処理されます。
このブロック崩しでは [4] か左キーでラケットが左に、[6] か右キーでラケットが右に動き出し、[5] か選択キーでラケットが静止します。