ホーム > 製品情報 > SophiaFramework UNIVERSE > チュートリアル > BREW ブロック崩しゲーム

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] か選択キーでラケットが静止します。