1

念のため、基本的な質問をしたいと思います。ジョイント作成で次のように使用する場合のように、andengineでいくつかのベクトルを表すためにVector2クラスを使用する場合:

jointDef.localAnchorA.set(new Vector2(1, 1));

渡された値、つまり1、1はそれぞれ1メートルを表しますか?

もう少し説明。次のように2つのボディを作成したとします。

Rectangle rect1 = new Rectangle(10, 10, 100, 100, vertexBufferObjectManager);
        Body body1 = PhysicsFactory.createBoxBody(mPhysicsWorld, rect1, BodyType.DynamicBody, FIXTURE_DEF);

        Rectangle rect2 = new Rectangle(110, 110, 50, 50, vertexBufferObjectManager);
        Body body2 = PhysicsFactory.createBoxBody(mPhysicsWorld, rect2, BodyType.DynamicBody, FIXTURE_DEF);

そして、下の画像に示されている位置に回転ジョイントを作成したい:

ここに画像の説明を入力してください

では、ベクトルlocalAnchorpointAとlocalAnchorPointBの値を設定して、赤い長方形の右上隅を白い長方形の中心に接触させる必要がありますか?好き:

jointDef.localAnchorA.set(new Vector2(?, ?));
    jointDef.localAnchorB.set(new Vector2(?, ?));

これは、vector2クラスの使用法を理解するのに非常に役立ちます。

4

2 に答える 2

2

ゲーム開発において、Vector2 クラスが何を表し、何を表しているのかを理解する必要があります。基本的に、提供された座標を 2D 空間にカプセル化します。さらに一歩進んで、距離計算からその他の基本的な代数計算まで、使用できる多くのアプリケーションがあります。Stiegart ブログでは、Android の Vector2 について非常に明確なアイデアが得られます。混乱と誤解が明確になることを願っています。

于 2012-09-03T11:44:56.340 に答える
0

Vector2 には関連付けられた単位がありません。(適切なカメラを選択して) レンダリングするときに、座標空間が画面上でどのように見えるかを決定します。天使の場合、ラジアンを使用する必要があります。

しかし、私が見ることができるように、あなたはそれを Box2D 物理エンジンに渡しています。m/kg/s に近い単位を使用することをお勧めします。キャラクターの高さを 2m にするのは良い選択です。あなたの小惑星ゲームで宇宙船エンタープライズを 10km にするとやり過ぎです。

詳細については、http: //box2d.org/2011/12/pixels/の投稿を参照してください。

于 2012-09-03T11:54:50.853 に答える