Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GL/gl.h>
- #include <GL/glu.h>
- #include <GL/glut.h>
- #include <string.h>
- //g++ main.cpp -lGL -lglut -lGLU
- using namespace std;
- float droll=0; //Yes, badly named, I know.
- float dpitch=0;
- int KeyDown[256];
- void init(void) {
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
- }
- void display(void) {
- /* Check this stuff out, yo.
- http://gamedev.stackexchange.com/questions/12885/help-understanding-glulookat
- WhatisthisIdon'teven.*/
- glClear (GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
- glLoadIdentity (); /* clear the matrix */
- /* viewing transformation */
- gluLookAt (0.0, 0.0, 6.0, 0.0, 0.0+dpitch, 0.0+droll, 0.0, 1.0, 0.0);
- glScalef (1.0, 1.0, 1.0); /* modeling transformation */
- glutWireCube (1.0);
- glFlush ();
- }
- void reshape (int w, int h) {
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 200.0);
- glMatrixMode (GL_MODELVIEW);
- }
- void mousefunc(int button,int state,int x,int y) {
- switch(button) {
- case GLUT_LEFT_BUTTON:
- glutPostRedisplay();
- break;
- case GLUT_RIGHT_BUTTON:
- glutPostRedisplay();
- break;
- }
- }
- void keyboardfunc(unsigned char key,int x,int y) {
- KeyDown[key]=1;
- }
- void keyboardUpfunc(unsigned char key,int x,int y) {
- KeyDown[key]=0;
- }
- void idlefunc() {
- if(KeyDown['a']) {
- droll-=0.01;
- }
- else if(KeyDown['d']) {
- droll+=0.01;
- }
- else if(KeyDown['s']) {
- dpitch-=0.01;
- }
- else if(KeyDown['w']) {
- dpitch+=0.01;
- }
- glutPostRedisplay();
- }
- int main(int argc, char** argv) {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(500, 500);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- memset(KeyDown,0,sizeof(KeyDown));
- glutMouseFunc(mousefunc);
- glutKeyboardFunc(keyboardfunc);
- glutKeyboardUpFunc(keyboardUpfunc);
- glutIdleFunc(idlefunc);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement