"Ningún juego dura tanto hasta que te lo terminas como el que te programas tú mismo,
ninguno te absorbe tanto y ninguno te produce tanta satisfacción cuando lo has acabado"
Programacion de videojuegos
Inicio Foro Sobre el curso de programación de juego... COmo pasar el codigo de el rompe ladrill...
Domingo 05 de Febrero del 2012

Menu principal
Colaborar (con PayPal)

Para continuar con el trabajo de esta Web y poder pagar el hosting, viene bien la ayuda que sea. Gracias a todos.

Importe: 

Ultimas descargas

 Foro de UnSitioWeb :: Sobre el curso de programación de juegos
Bienvenido/a Visitante   
Normas del foro   por Vicengetorix el 04-10-2009 02:30
 Asunto :COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008.. 29-11-2009 07:21 
Victor
Incorporado: 29-11-2009 06:13
Posts: 5
Localización
Eh intentado utlimamente pasando el codigo que tienes del Rompeladrillos 3d al visual studios 2008 y me salen muchos errores quisiera saber como se puede hacer para no depender del archivo glaux.h porque ese ya no viene en la nueva version del opengl.
Borre la cabecera donde dice glaux.h pero pues la verdad no se como resolver esos errores. Alguien que me pueda ayudaR?
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de ..... 29-11-2009 17:21 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 79
Localización
Veo que no quieres usar GLaux de ninguna manera.
Esta libreria nunca fue parte de OpenGL, es una libreria auxiliar, como indica su nombre.
Que no venga por defecto en VC 2008 no quiere decir que no se pueda usar.
Si la he usado en el rompeladrillos 3D es porque es mas rapido usarla que cargar un modelo de bola desde disco(todavia no habia llegado en el curso a eso) o mas rapido que calcular las coordenadas de una esfera y usar glVertex (vertex buffer no se habian visto en el curso todavia).
No es necesario usar Glaux para hacer juegos profesionales. Se puede usar para ir haciendo cosas y aprender (como es el caso que nos ocupa). Te la puedes bajar de UnSitioWeb, esta dentro de este fichero:
http://unsitioweb.com/descargas?func=fileinfo&id=10

Si de todas formas tienes una especial alergia a GLaux puedes hacer lo mismo usando la libreria GLU (otra libreria auxiliar) y quadrics, es decir debes cambiar el codigo.

Para dibujar la bolita tandrias que borrar la linea que lo hace con GLaux:

auxSolidSphere((8.0f*20.0f)/(double)rect.right);

e incluir este codigo (esta sin probar):

GLUquadricObj *q;
q=gluNewQuadric();
gluQuadricNormals(q, GLU_SMOOTH);
gluQuadricTexture(q, GL_FALSE);
gluSphere(q,(8.0f*20.0f)/(double)rect.right,32,32);
gluDeleteQuadric(q);


Como he dicho antes, si quieres hacerlo de una manera mas profesional y nueva o actual, puedes ir al capitulo 15 y modificar el programa para cargar un modelo desde disco, aunque para ir aprendiendo no creo que haga falta por ahora.

Seria mejor ir poco a poco, capitulo por capitulo, que no se tarda tanto.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 30-11-2009 05:05 
Victor
Incorporado: 29-11-2009 06:13
Posts: 5
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

Gracias Vicengetorix! creo que estoy a punto de poder correr el codigo, lo ultimo que se ve que le molesta es que no puede encontrar la libreria corona.dll, despues de que me sale esto en la ventana de compilacion:
Linking...
Embedding manifest...
me sale una ventana de windows de esas de stop y dice This application has failed because corona.dll was not found. Re-installing the application may fix this problem.
ya intente copiando el archivo en el directorio de opengl pero no me sigue dando ese mismo error.

Me preguntaba si tambien puedo omitir el archivo de corona como el archivo de glaux.h de alguna forma porque el problema es que cuando lo quiero correr en linux tendria que pasar el archivo corona.h y corona.lib y pues es un gran problema en linux buscar la carpeta en donde esta instalado opengl y copiarlo ahi.

Ademas tambien te queria preguntar si sabias como puedo resolver este warning que me sale como 80 veces: porque cuando cambio GLfloat a double me sale otro warning.
warning C4305: 'initializing' : truncation from 'double' to 'GLfloat'
warning C4305: 'initializing' : truncation from 'double' to 'GLfloat'

Muchas gracias por la ayuda!
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 30-11-2009 05:52 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 79
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

Corona es la libreria que uso para cargar los graficos. Si la quitas tendrias que usar otro metodo para cargar las imagenes.
El fichero corona.dll debe ir en el directorio de la aplicacion, normalmente el directorio del ejecutable. Si ejecutas desde VC, el directorio actual cuando ejecutas es en el que esta el proyecto.
En linux no se como va porque no he trabajado con el. En todo caso OpenGL no va instalado en ninguna parte, no es como DirectX. Es implementado por los fabricantes de hardware de video en sus drivers. Lo unico que te hace falta tener para programar con OpenGL son las librerias del compilador que uses.
Vease: http://unsitioweb.com/videojuegos/27-3-empezamos-con-opengl
Mi sugerencia, de nuevo, es que vayas poco a poco (no lento pero si desde el principio).

El tema de los warning es por dejadez. Cuando metes un numero en coma flotante del tipo double a un GLfloat, el compilador debe despreciar una parte ya que el primero es mas grande que el segundo. Se arreglaria definiendo los doubles como GLfloat. Yo no me preocuparia de eso.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 01-12-2009 03:01 
Victor
Incorporado: 29-11-2009 06:13
Posts: 5
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

gracias por la ayuda!
acabo de declarar todos los doubles como GLfloat y me sigue saliendo los warnings, queria saber si es al reves? tengo que declarar los GLfloat como doubles en lugar de como lo hice.
warning C4305: 'initializing' : truncation from 'double' to 'GLfloat'
warning C4305: 'initializing' : truncation from 'double' to 'GLfloat'

acabo de solucionar el problema de la libreria .dll (fue una tonteria) ya habia copiado el archivo al directorio de el proyecto pero era otro archivo me parece que era un corona.obj o algo parecido, me habia confundido perdon..

Asi que ya corre el programa solo no carga las imagenes y se que es porque no copie as imagenes al directorio de el proyecto, pero tambien lo hice intencionalmente porque queria tratar de usar una funcion como la de corona para cargar imagenes pero que ya este implementada en OpenGL, porque me imagino que corona.dll es una libreria externa.
Y tambien te queria preguntar cuales son las funciones que utiliza la libreria corona en tu proyecto, asi puedo borrarlas y tratar de sustituirlas por otra funcion para cargar imagenes.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 01-12-2009 03:14 
Victor
Incorporado: 29-11-2009 06:13
Posts: 5
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

acabo de ver un programa que tiene este metodo para cargar imagenes, me preguntaba si es el mismo que utilizas, o talves no el mismo pero si se puede utilizar en lugar de corona


este lo carga en el main:

texture[0] = LoadTexBMP("crate.bmp");

y luego lo utiliza en la funcion de Pintar()

glColor3f(1,1,1);
glBindTexture(GL_TEXTURE_2D,texture[0]); <
texture
glBegin(GL_QUADS);
glNormal3f( 0, 0, 1);
glTexCoord2f(0,0); glVertex3f(-1,-1, 1);
glTexCoord2f(1,0); glVertex3f(+1,-1, 1);
glTexCoord2f(1,1); glVertex3f(+1,+1, 1);
glTexCoord2f(0,1); glVertex3f(-1,+1, 1);
glEnd();

Entonces si este es el caso, sabes donde podria substituir este codigo en tu programa?

Porque segun lo que veo en el programa que te estoy enseñando utiliza una textura en un cubo que el mismo programador diseño, pero no se si eso puede hacerse tambien para un fondo por ejemplo como el que tienes tu.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 01-12-2009 03:37 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 79
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

Respecto a los warning, no le des mas vueltas (en todo caso ademas de las definiciones estan los cast o conversiones explicitas).

Respecto a corona y la carga de graficos.
En el segundo post indicas una funcion "LoadTexBMP". Eso no es de OpenGL. Se habra definido en otro punto del programa o sera de otra libreria. OpenGL no implementa la carga de graficos.
Yo he usado corona porque es facil de usar, acepta los formatos que quiero (PNG y JPG) y es gratuita. Hay muchas otras librerias y muy buenas y se puede usar cualquiera. Aqui hay algunas - http://unsitioweb.com/librerias-utiles-para-programar-juegos
En cuanto a usar tus propios diseños ... ¡ Pues claro !; solo tienes que hacer el dibujo en un programa de graficos y salvarlo con el formato que puedas cargar en tu programa.
El PNG es util porque acepta imagenes con transparencia. JPG no admite transparencia pero ocupa menos.

La carga de imagenes se hace en la funcion "CargaTextura" (como no).
Dentro de esta funcion te indico las lineas de corona en negrita:

corona::Image* imagen=NULL;
imagen = corona::OpenImage(fichero, corona::PF_R8G8B8A8);
if (!imagen) return;

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imagen->getWidth(),
imagen->getHeight(),0, GL_RGBA, GL_UNSIGNED_BYTE,
imagen->getPixels());

if(imagen!=NULL) delete imagen;

En todo caso, y a riesgo de ser pesado, insisto que en anteriores capitulos del curso de programacion de juegos se explican muchas de estas cosas.

Saludos.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 13-01-2010 03:24 
Victor
Incorporado: 29-11-2009 06:13
Posts: 5
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

acabo de donar a tu pagina porque realmente me ayudaste mucho, muchas gracias por tu ayuda disculpa que hasta apenas lo hice pero no tenia una tarjeta con cual hacerlo, gracias y nuevamente felicidades por tu pagina y por la dedicacion que le pones.
Ps. Yo se que no es mucho lo que done pero lo doy con todo corazon y de antemano gracias por tu ayuda.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 13-01-2010 11:53 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 79
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

Muchas gracias a ti por tu confianza.
Ahora estoy en una época difícil en cuanto a trabajo (no me sobra el tiempo) pero espero retomar una actividad más continua de actualizaciones en cuanto este un poco más liberado.
IP Logged
 Asunto :problemas al compilar.. 26-01-2010 03:11 
Ezequiel
Incorporado: 26-01-2010 01:55
Posts: 5
Localización
  
hola que tal Vicengetorix?
Un gusto haber llegado a tu web, te felicito nuevamente (como lo hice anteriormente en algún comentario). Realmente parece mucho el esfuerzo y dedicación que das por brindar el mejor material en tu web. Estoy interesado en estudiar tu fuente de ladrillos 2d, pero surgió un error al linkear y al parecer no es de librerías ni de sintaxis, ya que compila con 0 errores, pero al ejecutar surge este msje:

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MuroUSW.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

¿cómo podré revertir esto para lograr correr el programa? desde ya muchas gracias!
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 26-01-2010 12:06 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 79
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

Gracias, lo primero.
El error,efectivente, no es de código, es de linkaje (ufff que palabro).
El problema es, según parece en el mensaje, que no se ha enterado al linkar que el programa es de Windows y te busca la función main (no la WinMain que es la correcta).
Eso se arregla en las opciones del proyecto indicando que es un proyecto de programa para windows(Propiedades de configuración - Vinculador - Sistema - Subsistema).
A veces, por alguna razón que desconozco hace falta excluir del proyecto alguna librería como MSVCRT.lib o libc.lib (Propiedades de configuración - Vinculador - Entrada - Omitir biblioteca específica).
En todo caso para facilitar las cosas, en las descargas de UnSitioWeb hay un zip con un proyecto de ejemplo que a mi me funciona y se puede usar con los codigos de ejemplo: http://unsitioweb.com/descargas?func=fileinfo&id=15

Respecto a VC 2008, pues no lo he probado porque con 2005 me funciona bien. Los proyectos deben ser totalmente compatibles y el código también (más todavía).

Suerte (que nunca está de más).
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 26-01-2010 17:49 
Ezequiel
Incorporado: 26-01-2010 01:55
Posts: 5
Localización
  
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

ah, claro una cosa que no mencioné esque estoy probando el código en VC6.0
intenté ir a la configuración que mencionaste pero al parecer no la tiene,
voy a tener que actualizar finalmente mi Visual Studio ya que parece estar un poquito pasado de moda.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 27-01-2010 12:53 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 79
Localización
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

Yo usé el VC6 mucho tiempo. No creo que el código sea incompatible, solo hara falta ajustar los parametros del vinculador (linker) para que el programa que genere sea para Windows y puede que investigar un poco más.
Si tú quieres actualizarte bien, pero con el VC6 puedes hacer de todo.
IP Logged
 Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2.. 28-01-2010 18:26 
Ezequiel
Incorporado: 26-01-2010 01:55
Posts: 5
Localización
  
Asunto :Respuesta:COmo pasar el codigo de el rompe ladrillos a Visual Studio 2008

/perdon quise agregar algo aqui pero me parecio +apropiado postearlo como tema nuevo/
IP Logged
Página # 


Powered by ccBoard




Banner
Banner