3D Rad - Free 3D game maker - Forum

This forum is now archived!

This forum is locked, and is a read-only version. A new community-ran forum can be found at classdev.net

News:

The 3DRad community can be found at classdev.net.

Pages: [1]

Author Topic: 1st Person Chase Cam.  (Read 579 times)

« on: August 01, 2010, 04:07:25 PM »
Here are some pictures of what is happening when i look up and down after rotating.  If i change the z axis which is what i think needs to happen it gets worse i'll insert my code and let you check it out and maybe can help.  It is mostly the character control demo no mouse modded to fit my app but i am not making great strides.  The reason i am not using the 1st person cam is because it is too limiting if you were wondering.
Code: [Select]
Quaternion CharacterOrientation;
Quaternion LeftRotation;
Quaternion RightRotation;
Quaternion CameraOrientation;
Quaternion UpRotation;
Quaternion DownRotation;
void Main()
{
   if (iInitializing())
   {
      //memoerize initial character orientation
      iObjectOrientation(OBJ_44,CharacterOrientation);
      iObjectOrientation(OBJ_88,CameraOrientation);
      //create left/right heading rotations
      iQuaternionFromEulerAngles(LeftRotation,0,-60*0.016667,0,"xyz"); //create a quaternion rotating -90 degs about X
      iQuaternionFromEulerAngles(RightRotation,0,60*0.016667,0,"xyz"); //create a quaternion rotating -90 degs about X
      iQuaternionFromEulerAngles(UpRotation,-60*0.016667,0,0,"xyz");
      iQuaternionFromEulerAngles(DownRotation,60*0.016667,0,0,"xyz");
   }
   if (IN_0 > 0.5)
   {
      //add left rotation to current character orientation
      iQuaternionMultiply(CharacterOrientation,CharacterOrientation,LeftRotation);
     
   }
   if (IN_22 > 0.5)
   {
      //add right rotation to current character orientation
      iQuaternionMultiply(CharacterOrientation,CharacterOrientation,RightRotation);
     
   }
   if (IN_66 > 0.5)
   {
      //add up rotation to current camera orientation
      iQuaternionMultiply(CameraOrientation,CameraOrientation,UpRotation);
   }
    if (IN_110 > 0.5)
   {
      //add up rotation to current camera orientation
      iQuaternionMultiply(CameraOrientation,CameraOrientation,DownRotation);
   }
   CameraOrientation.y = CharacterOrientation.y; 
   iObjectOrientationSet(OBJ_44,CharacterOrientation);
   iObjectOrientationSet(OBJ_88,CameraOrientation);
   if(IN_132 > 0.5)
      {
         iScreenshotSave(".\\pic.jpg");
      }
}
Pages: [1]