Hi Mr. Niceguy, I'm not sure if the camera jumping is due to the camera routine itself or if it's part of all that movement routine going on there, or a combination. I'm working on some Object Based AI projects (the intent is to reduce the amount of programmed math needed) and have come up with a workable camera routine that's pretty easy to follow. Anyway, this may not be a direct answer to your question, but feel free to look through this code and see if any of it is useful to you.
Type Coordinates
x as Float
y as Float
z as Float
EndType
Global Object as Coordinates
Global Camera as Coordinates
Global AI as Coordinates
Sync On
Sync Rate 100
Autocam Off
Make Matrix 1,1000,1000,50,50
`player
Make Object Sphere 1,20
Position Object 1,500,0,500
`AI Object
`Note: Just as my own standard, I always use Object #2 as the AI Object (for no reason, just because).
Make Object Sphere 2,1,8,8
Hide Object 2
Do
Turn Object Left 1,LeftKey()-RightKey()
Move Object 1,Upkey()-DownKey()
Camera_Follow(1)
Sync
Loop
Function Camera_Follow(ObjectID)
Return_Object(ObjectID)
Position Object 2,Object.x,Object.y,Object.z
Set Object To Object Orientation 2,1
Move Object 2,-80
Pitch Object Up 2,90
Move Object 2,60
Return_AI()
Position Camera AI.x,AI.y,AI.z
Point Camera Object.x,Object.y,Object.z
EndFunction
Function Return_Object(ObjectID)
Object.x=Object Position X(ObjectID):Object.y=Object Position Y(ObjectID):Object.z=Object Position Z(ObjectID)
EndFunction
Function Return_Camera()
Camera.x=Camera Position X():Camera.y=Camera Position Y():Camera.z=Camera Position Z()
EndFunction
Function Return_AI()
AI.x=Object Position X(2):AI.y=Object Position Y(2):AI.z=Object Position Z(2)
EndFunction
Note: The only reason I bother to use the AI object is because the Set Camera to Object Orientation command is bugged. Otherwise, I would only use the camera commands (and life would be much simpler).
"Droids don't rip your arms off when they lose." -H. Solo
REALITY II