Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include <GL/glut.h>
#include <unistd.h>
#include<stdio.h>
#include<time.h>
#include <iostream>
double posx=-0.8;
double posy=0.0;
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.0);
glVertex2f(0.8,-0.2);
glVertex2f(0.8,-0.8);//lado inferio 4
glVertex2f(-0.8,-0.8);
glVertex2f(-0.8,0.3);
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();
glPushMatrix();
glTranslatef(posx,posy,0);
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();
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;
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;
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
iniciar();
glutDisplayFunc(dibujar);
glutIdleFunc(actualizar);
glutKeyboardFunc(teclado);
glutSpecialFunc(ArrowKey);
glutMainLoop();
return 0;