000
20.11.2002, 18:52
hausi
|
Ok. Das Topic sagt ja noch nicht so viel über das eigentlich Problem aus deshalb beginne ich halt mal mit 2 Screenshots (gehen nur solange ich online bin):
 Dieser Screenshot zeigt eigentlich, wie es immer aussehen sollte. Der Norpol ist hier noch in der Mitte des Screens.
 Dieser Screenshot zeigt, wies aussieht, wenn ich die Erde nicht auf 90°, 180°, 270° oder 360° gedreht habe. Der Nordpol ist hier nach rechts oben verschoben.
Ich denke, das Problem sollte somit mal klar sein. Jetzt noch den Code, den ich verwende (vereinfacht; Funktionsnamen geändert):
Welt.SetRotation( 0, Welt.GetRotation.y, 0 ); // Zuerst einmal die Rotation zurücksetzen, damit ich die RotateY-Funktion korrekt aufrufen kann if MousePosX < 120 then begin FWorld.RotateY( 1 ); end else if MousePosX > 680 then begin FWorld.RotateY( -1 ); end; if MousePosY < 300 then begin // Falls Mousezeiger über der Bildmitte ist: rot:= [Formel zur Ausrechnung der Rotation; Funktioniert einwandfrei]; end else begin rot:= [Formel zur Ausrechnung der Rotation; Funktioniert einwandfrei]; end;
// Hier ist der Fehler: Welt.SetRotation( -Sin( Deg2Rad( Welt.GetRotation.y ) ) * rot, Welt.GetRotation.y, Cos( Deg2Rad( Welt.GetRotation.y ) ) * rot );
Der Fehler liegt in dieser Zeile, allerdings habe ich jetzt schon ca. 3 Stunden daran gearbeitet und finde so langsam aber sicher einfach keinen klaren Gedanken mehr... Wäre schön, wenn einer von euch den Fehler finden würde...
P.S: Es gibt verschiedene Gründe, warum ich nicht einfach die Kamera um den Globus rotiere, die ich hier nicht näher erläutern möchte (würde schon zu viel vom Spiel verraten ;)).
Danke, superhausi
--
|
|
Profil || Suche
|
001
20.11.2002, 22:38
Tron
|
ich hab's net genau gelesen, mal ins blaue geraten, wuerde ich gimbal lock sagen. (google)
--
'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams
'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett
|
|
Profil || Suche
|
002
20.11.2002, 22:50
hausi
|
Danke für die Antwort... Das gibt mir wenigstens Lesematerial für den nächsten Kurstag (sonst: 8 Stunden schlafen)... :)
--
|
|
Profil || Suche
|