敵が視界に入り(画面に写っている)状態でそのオブジェクトをタップすると敵を倒せるという処理を追加します。加えて、ゲーム開始前/プレイ中/ゲームオーバーとなる状態遷移を実装し、ゲームとして完成させましょう。処理の流れとしては、タップされた座標の取得、OpenGLで使われる3次元座標から、画面上の2次元座標に変換し、タップされた座標と照らし合わせるというものになります。タップされた座標の取得はARGame.javaで行います。}取得した座標は画面左下を原点とした座標になっています。OpenGLでは、画面左上を原点とした座標になるため、その変換を行なって座標の受け渡しを行います。GLRendererに以下のようなメソッドを追加します。座標の取得と共に、画面にタッチされたかを判定するフラグも作成します。}作成したフラグを利用してonDrawFrame中の処理で当たり判定を行う処理を呼びします。当たり判定を行う処理は以下のようになります。}当たり判定は、画面中に描画されるOpenGLの画素を取得し、その色を判別することで行います。ここでは、タップされた座標の画素を取得し、背景でなければ撃墜処理を起こっています。撃墜処理は、端末を振動させる、敵を初期値(ランダム)に移動する、スコアを増やすといったものになっています。2.状態遷移の作成ゲームの状態遷移を行う処理を追加します。onDrawFrame内の処理をstateの値によって変化させることで実現します。}STATE_STARTでは画面がタップされたらゲームを開始するようにします。STATE_GAMEOVERでは、内容の初期化を行います。初期化の内容は以下のようになります。}ゲームの処理はひと通り完成しました。最後に、スコアの表示などを行う部分を作成しましょう。3.スコアの表示スコアの表示は3Dではないため、ARView.java内でCanvasクラスを使用して行います。ARViewの内容は以下のようになります。}(1)描画処理ゲームの状態によって描画内容を変化させます。OVERと表示します。(2)更新処理の呼び出し各パラメータを引渡、画面の再描画を行います。ARView.javaの処理を行うために、GLRendererに情報を取得するメソッドを加えます。}これらの処理を利用して、ARGame.javaのonSensorChangedメソッド内で、画面の更新処理を行うようにします。}これでARGame.javaは完成です。実際にプレイすると、以下のような画面が現れます。実際には背景にカメラ画像が映るので、自分の周りにいる見えない敵がこちらに近づいてくるような形になります。以上でARアプリの作成は終了です。ここまで3回にわたってARを取り上げてきましたが、いかがだったでしょうか。センサー利用やOpenGLの利用など、様々なアプローチがあることがお分かり頂けたと思います。工夫次第で面白いアプリが作成できると思いますので、是非皆さんも考えてみて下さい。登録するという内容を取り挙げます。12回に渡る連載も、次回で最終回となります。最後までよろしくお願いします。今回コラムで使用したプログラムはこちらとからダウンロード出来ます。本コラム内で提供する情報のご利用は、利用者ご自身の責任において行われるものとします。保証するものではありません。当社は、利用者がこれらの情報をご利用になったこと、またはご利用になれなかったことにより生じたいかなる損害についても責任を負いません。本コラムで提供される各種情報に関し、利用者と他の利用者あるいは第三者と紛争が生じた場合、利用者は自己の費用と責任においてこれを解決するものとし、当社に損害を与えないものとします。当社は、本コラムに掲載する情報の全部又は一部を予告なく変更する場合がございます。本コラムの運用を休止または停止する場合がございます。当社は、理由の如何を問わず本コラムの提供が遅延し、または中断したことに起因して利用者または第三者が被った被害について、一切の責任を負いません。コンピューター環境その他の理由により、本コラムが正常にご利用できない場合がございます。公開日時点のものであり、団体・サービス・ツール等の名称が変更されることがあります。登録してみよう>>TOPへ会社案内プレスリリース災害用伝言版サービスサイト。