2012-04-11 1 views
1

Ich habe an Kamerasteuerungen in 3D-Grafik-Anwendung in OpenGL gearbeitet. Aber ich muss sagen, das Erstellen einer Kamera in der Wiedergabe mit einer Draufsicht, mit Rotation und Übersetzung sieht mir wirklich schwer mit dem Konzept der Ebenen. Es wäre toll, wenn uns jemand ein Beispiel zeigen könnte!Kamerasteuerung in Playn

Dank

Antwort

1

Ich bin neu das gleiche Problem playn und hatte. Ich cam über diesen Thread während der Suche nach der Antwort. Ich nehme an, dass Sie nach einer 3D Antwort suchen, ich arbeite in 2D. Eine 3D-Lösung könnte ähnlich sein, aber ich weiß nicht, wie die Ebenen in 3D funktionieren, also könnte ich mich irren. Wie auch immer, hier ist was ich gefunden habe.

Das Problem ist, dass Übersetzungen auf den Ebenen alle auf einmal erfolgen. Dies bedeutet, dass jede Drehung um den Ursprung herum erfolgt. Wenn Sie also eine gedrehte Ansicht eines bestimmten Ortes anzeigen möchten, müssen Sie berechnen, was dieser Ort nach der Drehung wäre, und dann die Übersetzung des Layers auf den gedrehten Ort festlegen.

Ich habe dies zu der Erbsen-Demo im Showcase-Projekt hinzugefügt, um es zu testen.

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); 
} 

Wie gesagt ich wahrscheinlich nicht die Antwort für Ihre Suche, aber es kann jemand anders oder zumindest Punkt, den Sie in einer Richtung helfen.