PDA

View Full Version : Camera following object



Sczerzuja
01-17-2014, 11:52 AM
Im creating a minigame something like RPG and i want to make camera that follow my character.My problem is that object "postac" is moving forward and backward with camera correctly but when i want to look left or right i doesnt change what im doing wrong ?How to use this rotatef function or what to change pls help me. Ive heard about that i need to rotate world around my object but how ?! If u want to check how it works download and run zegar.exe file from my dropbox a
https://www.dropbox.com/sh/wmywu1xqji7dmvn/0lSi2pJO1r


void Display()
{
glClearColor (0.0,0.0,0.0,1.0);
if (deltaMove)
computePos(deltaMove);
if (deltaAngle)
computeDir(deltaAngle);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

gluLookAt( x, 1.0f, z,
x+lx, 1.0f, z+lz,
0.0f, 1.0f, 0.0f);

glTranslatef( 0, -40, -10 ) ;
niebo(); //sky
makieta();// my world
glTranslatef( x+lx, 1.0f, z+lz ) ;
postac(); //my character
glutSwapBuffers();
}


void computePos(float deltaMove) {

x += deltaMove * lx * 0.1f;
z += deltaMove * lz * 0.1f;
}

void computeDir(float deltaAngle) {

angle += deltaAngle;
lx = sin(angle);
lz = -cos(angle);
}


void pressKey(int key, int xx, int yy) {

switch (key) {
case GLUT_KEY_LEFT : deltaAngle = -0.005f; break;
case GLUT_KEY_RIGHT : deltaAngle = 0.005f; break;
case GLUT_KEY_UP : deltaMove = 0.5f; break;
case GLUT_KEY_DOWN : deltaMove = -0.5f; break;
}
}

void releaseKey(int key, int x, int y) {

switch (key) {
case GLUT_KEY_LEFT : deltaAngle = 0.0f;break;
case GLUT_KEY_RIGHT : deltaAngle = 0.0f;break;
case GLUT_KEY_UP : deltaMove = 0;break;
case GLUT_KEY_DOWN : deltaMove = 0;break;

CarstenT
01-19-2014, 06:00 AM
hi Sczerzuja

Check if deltaAngle = 0.005f is large enough to make a visual difference.
Check if
if (deltaAngle)
is true when you expect it to.