Wie es scheint, liegt es an den Übergaben.
CAMERA MyCam;
...
function(MyCam);
Der Parameter wird jetzt an die Funktion übergeben und erstellt einen Zeiger aus dem MyCam Objekt:
function(CAMERA* pCam)
{
...
}
Und ab genau nach dem 2.Frame stimmt da irgendetwas nicht mehr.
Lasse ich die Übergabe zu einer anderen Funktion weg und erledige alles in einem Schritt, funktioniert es:
function fROOT_Init()
{
level_load("root.wmb");
wait(2);
Root_CreatePlayer();
CAMERA MyCam;
MyCam.Tilt = 15;
MyCam.Pan = 0;
MyCam.Height = 0;
MyCam.TotalDistance = 400;
MyCam.Pivot = pPlayer;
while(1)
{
MyCam.Distance = (cos(MyCam.Tilt) * MyCam.TotalDistance);
vCamera.x = (MyCam.Pivot.x - cos(MyCam.Pan) * MyCam.Distance);
vCamera.y = (MyCam.Pivot.y - sin(MyCam.Pan) * MyCam.Distance);
vCamera.z = ((MyCam.Pivot.z + sin(MyCam.Tilt) * MyCam.TotalDistance) + MyCam.Height);
vCamera.pan = MyCam.Pan;
vCamera.tilt = -(MyCam.Tilt);
vCamera.roll = 0;
MyCam.Pan += mickey.x;
MyCam.Tilt += mickey.y;
MyCam.TotalDistance -= mickey.z;
g_CameraPan = MyCam.Pan;
g_CameraTilt = MyCam.Tilt;
g_CameraTotalDistance = MyCam.TotalDistance;
wait(1);
}
// InitiateCamera(MyCam);
}
////////////////////////////////////////////////////////////////////////////////////
Aber es muss doch möglich sein, ein struct Objekt im Code hin und her schubsen zu können.
Erzeuge ich das Objekt falsch?