3
« en: Domingo 3 de Octubre de 2010, 13:42 »
Hola, la verdad es que no he entendido todo el codigo, pero yo hice hace poco un programa similar así que te cuento lo que hice (utilize una esfera no un punto):
-creas 2 parejas de variables, la primera con la posicion de la bola, y la segunda con la velocidad y direccion de la bola, EJ:
x=0 y=0 la bola esta en el centro
fx=0 fy=-1 la bola se mueve hacia abajo
-En la funcion IDLE compruebas que la bola no este fuera de un marco imaginario, y si lo está inviertes la variable fx o fy dependiendo de si la bola se sale por los laterales o por arriba o abajo. Despues de esto modificas las variables x y, segun las variables fx fy. Ahora dibujas la esfera de esta forma, primero usas glTranslatef(x, y, 0.0) y despues dibujas la esfera(o lo que quieras) con glutWireSphere(1.0).
Hay un par de cosas que haria para que se leyera mejor tu codigo:
-Identa el codigo, aunque C no te oblige, es mejor si usas las tabulaciones
-No escribas funciones que solo llamen a una funcion como la funcion objeto_geometrico que solo llama a mipoligono
-No declares varias variables a la vez como en GLfloat v = 3.0,a=45,b=0,px=a,py=b,ancho,alto;
Además deberías añadir codigo para que los FPS siempre sean los mismos, es decir que el programa tenga siempre la misma velocidad.
A, y una ultima cosa en realidad importa poco, pero para solo usar cout podrias usar C y no C++, tus programas seran mas rapidos