ive programmed a basic RTS style camera that works so far.
but i have a problem:
is there a way to rotate the camera pan? otherwise the controls arent aligned correctly for the cameramovement-code. the camera pan should be -90 and the camera angle should be -60.
if someone of you could help me i´d be very glad
Code: Select all
// BASIC RTS CAM
// -------------
// you have to call this in the main function:
// cursor->device->getCursorControl();
// createCamera();
//
// and this in the main function´s while loop
// updateCamera();
position2d<s32> Cursor_Position;
position2d<s32> Camera_Position;
position2d<s32> ScreenResolution;
vector3df Camera_Position;
ICursorControl* cursor;
ICameraSceneNode* camera;
void createCamera()
{
ScreenResolution.X = 1024;
ScreenResolution.Y = 768;
camera = smgr->addCameraSceneNode(0, vector3df(0,0,0), vector3df(0,0,0));
camera->setPosition(vector3df(35000,2000,35000));
}
void updateCamera()
{
Cursor_Position = cursor->getPosition();
Camera_Position = camera->getPosition();
float CameraSpeed = 2;
if(Cursor_Position.X < 1)
{
Camera_Position.X -= CameraSpeed;
camera->setPosition(Camera_Position);
}
if(Cursor_Position.X > ScreenResolution.X - 2)
{
Camera_Position.X += CameraSpeed;
camera->setPosition(Camera_Position);
}
if(Cursor_Position.Y > ScreenResolution.Y - 2)
{
Camera_Position.Z -= CameraSpeed;
camera->setPosition(Camera_Position);
}
if(Cursor_Position.Y < 1)
{
Camera_Position.Z += CameraSpeed;
camera->setPosition(Camera_Position);
}
}