Jump to content

  • Log In with Google      Sign In   
  • Create Account

We need your feedback on a survey! Each completed response supports our community and gives you a chance to win a $25 Amazon gift card!


rodar3

Member Since 26 Apr 2013
Offline Last Active May 01 2013 12:11 PM

Topics I've Started

OpenGL glTranslatef problems

26 April 2013 - 04:54 PM

Hi,

I've been doing some OpenGL with SDL and I'm slowing moving towards programming the camera movement to match that of an FPS. Basically what I have so far is a triangle being rendered in front of the viewport and I wanted to make the camera move forward (or any way really) to the triangle and then slowly add more directions. Basically taking it one step at a time.

 

Here's the problem. It won't move. No matter what I do, I can't seem to get the camera to translate anywhere. I've looked online and I can't seem to pinpoint where my mistake(s) are. I'll be continuing to look for the answer but I thought it might be really simple and someone could help me out here.

 

Here's my code...

 

#include "SDL.h"

#include <windows.h>

#include <GL/gl.h>

#include <GL/glu.h>


#define SCREEN_WIDTH 640

#define SCREEN_HEIGHT 480


// Variables

float moveZ = 0.0;


float camX = 0.0;

float camY = 0.0;

float camZ = 0.0;


void init()

{

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

glClearColor(0.0, 0.0, 0.0, 1.0);

glClear(GL_COLOR_BUFFER_BIT);

// Left Right Bottom Top

glOrtho(0.0, SCREEN_WIDTH, 0.0, SCREEN_HEIGHT, 1.0, -1.0);

glPushMatrix();

}


void triangle()

{

//draw triangle

glBegin(GL_TRIANGLES);

glVertex3f(320.0, 320.0, 0.0);

glVertex3f(200.0, 160.0, 0.0);

glVertex3f(400.0, 160.0, 0.0);

glEnd();

}


void moveCamera()

{

glLoadIdentity();

glTranslatef(camX, camY, camZ);

SDL_GL_SwapBuffers();

}


int main(int argc, char** args)

{

int quit = 0;

SDL_Event event;


SDL_Init(SDL_INIT_EVERYTHING);

SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);

init();

triangle();

SDL_GL_SwapBuffers();


while(quit == 0)

{

if(SDL_PollEvent(&event))

{

if(event.type == SDL_KEYDOWN)

{

switch(event.key.keysym.sym)

{

case SDLK_w: camZ += 500.0; break;

}

}

else if(event.type == SDL_QUIT)

{

quit = 1;

}

}

moveCamera();

}


//SDL_Delay(2000);

SDL_Quit();

return 0;

}

 

Thanks for any help. smile.png


PARTNERS