Está en la página 1de 12

Laberinto controlado por teclado

#include <GL/glut.h>

#include <unistd.h>

#include<stdio.h>

#include<time.h>

#include <iostream>

double posx=-0.8;

double posy=0.0;

double poscajax=-0.16;//aqui pos muñe

double poscajay=0.6;

double angulo_caja=0.f;

int i=0;

int a=0;
void iniciar(){

glClearColor(0,0,3,4);

// glLineWidth(3.f);

//muñeco

glOrtho(800,0,600,0,-1,1);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

void dibujar(){

glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_LINE);

glColor3f(1.f,1.f,0);

glVertex2f(-0.8,0.8);//lado superior 1

glVertex2f(0.8,0.8);

glVertex2f(0.8,0.8);//lateral derecho superior 2

glVertex2f(0.8,0.0);

glVertex2f(0.8,-0.8);//lateral derecho inferior 3

glVertex2f(0.8,-0.2);

glVertex2f(0.8,-0.8);//lado inferio 4
glVertex2f(-0.8,-0.8);

glVertex2f(-0.8,0.8);//lado lateral izquierdo superior 5

glVertex2f(-0.8,0.3);

glVertex2f(-0.8,0.1);//lado lateral izquiero inferior 6

glVertex2f(-0.8,-0.8);

glVertex2f(-0.8,0.3);//linea7

glVertex2f(-0.6,0.3);

glVertex2f(-0.8,-0.1);//linea8

glVertex2f(-0.6,-0.1);

glVertex2f(-0.6,0.6);//linea9

glVertex2f(-0.2,0.6);

glVertex2f(-0.6,0.4);//lado10

glVertex2f(-0.6,0.1);

glVertex2f(-0.6,0.1);//linea11

glVertex2f(-0.2,0.1);

glVertex2f(-0.4,0.6);//lado12

glVertex2f(-0.4,-0.6);

glVertex2f(-0.2,-0.3);//linea7
glVertex2f(-0.6,-0.3);

glVertex2f(-0.6,-0.5);//linea7

glVertex2f(-0.8,-0.5);

glVertex2f(-0.6,-0.7);//lado10

glVertex2f(-0.6,-0.8);

glVertex2f(-0.2,-0.5);//lado10

glVertex2f(-0.2,-0.8);

glVertex2f(0.0,0.5);//lado10

glVertex2f(0.0,-0.8);

glVertex2f(-0.2,-0.1);//linea8

glVertex2f(0.2,-0.1);

glVertex2f(-0.2,0.3);//linea8

glVertex2f(0.2,0.3);

glVertex2f(0.2,0.5);//lado10

glVertex2f(0.2,0.8);

glVertex2f(0.8,0.6);//linea8

glVertex2f(0.4,0.6);

glVertex2f(0.5,0.6);//lado10

glVertex2f(0.5,-0.5);
glVertex2f(0.2,0.1);//linea8

glVertex2f(0.5,0.1);

glVertex2f(0.6,-0.3);//linea8

glVertex2f(0.2,-0.3);

glVertex2f(0.3,-0.5);//lado10

glVertex2f(0.3,-0.8);

glEnd();

//////DIBUJO DEL MUÑECO///

glPushMatrix();

glTranslatef(posx,posy,0);

glScaled(6,6,0); // tamaño del muñeco

glBegin(GL_QUADS); // esto define el cuadrado

glColor3f(0.5,190.,0.9);

glVertex2f(-0.01,0.03); //

glVertex2f(-0.02,0.045);

glVertex2f(-0.01,0.045);

glVertex2f(-0.02,0.03);

glEnd();

glPopMatrix();

glutSwapBuffers();

}
void actualizar(){

angulo_caja=2;

glutPostRedisplay();

/// teclas para las letras

void teclado(unsigned char tecla, int x,int y)

switch(tecla)

{ case 'd':

if(a==0){

while (i<36){

sleep(0.1);

posy-=0.01f;

i++;

i=0;

a=1;

if(a==1){

while(i<20){

sleep(0.1);

posx-=0.01f;

i++;

}
i=0;

a=2;

break;

if(a==2){

while(i<20){

sleep(0.1);

posy-=0.01f;

i++;

i=0;

a=3;

break;

if(a==3){

while(i<20){

sleep(0.1);

posx+=0.01;

i++;

i=0;

a=4;

break;

if(a==4){

while(i<20){

sleep(0.1);

posy-=0.01;
i++;

i=0;

a=5;

if(a==5){

while(i<20){

sleep(0.1);

posx+=0.01;

i++;

i=0;

a=6;

if(a==6){

while(i<20){

sleep(0.1);

posy-=0.01;

i++;

i=0;

a=7;

if(a==7){

while(i<40){
sleep(0.1);

posx-=0.01;

i++;

i=0;

a=8;

if(a==8){

while(i<20){

sleep(0.1);

posy+=0.01;

i++;

i=0;

a=8;

if(a==8){

while(i<20){

sleep(0.1);

posx-=0.01;

i++;

}
i=0;

a=9;

if(a==9){

while(i<40){

sleep(0.1);

posy-=0.01;

i++;

i=0;

a=10;

if(a==10){

while(i<60){

sleep(0.1);

posx+=0.01;

i++;

i=0;

a=11;

if(a==11){

while(i<16){

sleep(0.1);
posy-=0.01;

i++;

i=0;

a=0;

break;

case 'a':

posx=-0.16;

posy=0.6;

break;

///// teclas de control para direccion con las flechas

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

switch (key){

case GLUT_KEY_RIGHT:

posx += 0.01;

break;

case GLUT_KEY_LEFT:

posx -= 0.01;

break;

case GLUT_KEY_UP:

posy += 0.01;

break;

case GLUT_KEY_DOWN:

posy -= 0.01;
break;

// la metodo para compilar todas las funciones

int main(int argc, char **argv) {

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);

glutInitWindowPosition(500,500); // posicion de la pantalla

glutInitWindowSize(500,500); // tamaño de la venta

glutCreateWindow("***LAVERINTO EXAMEN***"); // nombre de la ventana

iniciar();

glutDisplayFunc(dibujar);

glutIdleFunc(actualizar);

glutKeyboardFunc(teclado);

glutSpecialFunc(ArrowKey);

glutMainLoop();

return 0;

También podría gustarte