2012-02-21 42 views
0

私はちょうどバグのような2D Androidゲームを開発し始めました。 シナリオは、私は、OpenGL es.Itsにシンプルな2Dのゲームを使用して、私のカメラだ(私はそれが消えるそのうちの一つとなどに押すと、ランダムな方向に移動する3つの同じタイプのバグなどがある...)OpenGL ESの座標

ですOpenGLの1つの位置に固定されています。私は私の携帯電話の画面の座標が私のOpenGLの座標に一致しないことを知っているので、私は自分自身を結合/変換する必要があります。

申し訳ありませんが、私の質問は、私はちょうど初心者....

質問1(このゲームを作成するために、おそらく最も重要なもの)だ愚かなようであれば。私は3つの同じオブジェクト(バグ)があると言ったので。どのように私はそれらのそれぞれの座標を同時にOpenGLで追跡することができますか?

質問2.画面からOpenGLに座標を結合するための代替方法と簡単な方法はありますか、それとも自分で行うべきですか?

答えて

0
  1. 好きなデータ構造を使用して、各オブジェクトの座標をトラッキングするだけでよいはずです。最も単純な言葉でいうと、「ワールド空間」にx座標とy座標を含む構造体にすぎません。それぞれの反復では、速度と方向に基づいてこれらの座標を更新し、オブジェクトを再び描画します。賢明な最適化がなければ(おそらくほんの一握りのオブジェクトであれば必要ではないかもしれませんが)、あなたの位置をオブジェクトの座標に移動してdrawを呼び出すことによって、それを行うことができます。

  2. オープン・ルーズでは、これを自分で把握しなければならないと私は信じています。

opengl(es)で作業する場合、通常、オブジェクトの概念ワールド座標を示す「ワールドスペース」の座標を追跡します。それぞれのオブジェクトは、オブジェクトが(0、0)の中心にあると仮定し、足と頭の位置を指定することを可能にする "モデル空間"で自分自身を描く方法に関する独自の知識を持つことができます。 、0)。

最後のステップは、ビューポートが設定されているもの(基本的にはあなたの画面)にマップする「スクリーンスペース」に座標を投影することです。座標間の遷移は、典型的には、モデルビューおよび投影行列によって達成される。モデルビューマトリックスは、世界座標をカメラ座標(つまり、カメラとの相対座標)に変換し、投影行列はこれらの座標をビューポート座標(画面座標)に変換します。

これは多くのように聞こえるかもしれませんが、これらの行列のハングを取得すると、それは第2の性質になります。 OpenGLのmodelview投影行列のためのチュートリアルがあります。より具体的な質問がある場合はお知らせください...

+0

ありがとうございます、その非常に有益です。とにかく、唯一のことは、ランダムに移動すると、どこにあるかを追跡する方法を見つけることができません。どの座標が「世界の空間」で私のオブジェクトであるかを即座にチェックする方法はありますか? – user1223513

関連する問題