私は、OpenGL の 3D グラフィックス アプリケーションでカメラ コントロールに取り組んできました。しかし、レイヤーの概念では、回転と移動を使用して、プレインでカメラを作成するのは非常に難しいと言わざるを得ません。誰かが私たちに例を示すことができれば素晴らしいでしょう!
ありがとう
私は、OpenGL の 3D グラフィックス アプリケーションでカメラ コントロールに取り組んできました。しかし、レイヤーの概念では、回転と移動を使用して、プレインでカメラを作成するのは非常に難しいと言わざるを得ません。誰かが私たちに例を示すことができれば素晴らしいでしょう!
ありがとう
私はプレイするのが初めてで、同じ問題を抱えていました。答えを探している間、私はこのスレッドを横切ってカムします。私はあなたが3Dの答えを探していると思います、私は2Dで働いています。3Dソリューションも同様である可能性がありますが、レイヤーが3Dでどのように機能するかわからないため、間違っている可能性があります。とにかくここに私が見つけたものがあります。
問題は、レイヤーの翻訳が一度に行われることです。つまり、回転は原点の周囲で行われるため、特定の場所の回転ビューを表示する場合は、回転後のその場所を計算してから、レイヤーの平行移動を回転した場所に設定する必要があります。
これをショーケースプロジェクトのエンドウ豆のデモに追加してテストしました。
private void setCameraLocation(Vec2 vec, float rot) {
vec = new Vec2(-vec.x/physUnitPerScreenUnit, -vec.y/physUnitPerScreenUnit);
Transform trany = new Transform();
trany.set(new Vec2((PlayN.graphics().width()/2f),(PlayN.graphics().height()/2f)), -rot);
vec = Transform.mul(trany, vec);
worldLayer.setRotation(-rot);
worldLayer.setTranslation(vec.x,vec.y);
}
私が言ったように、おそらくあなたが探している答えではありませんが、それは他の誰かを助けるか、少なくともあなたをある方向に向けるかもしれません。