"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 Último post
Viernes 26 de Febrero del 2021

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
19.Jan

Clase que permite dibujar texto en OpenGL con mucha facilidad.Usa FreeType2.Para ver que hace y c...


 Foro de UnSitioWeb
Bienvenido/a Visitante   
Normas del foro   por Vicengetorix el 04-10-2009 02:30
« InicioAnterior12345678910SiguienteFin »
 Asunto :programa avioncito.. 25-11-2009 03:02 
cristiaan3003
Incorporado: 12-11-2009 06:22
Posts: 14
Localización
Foro : Presentación de trabajos
Tema : programa avioncito

Hola , bueno aca te envio la version que presentamos, igual tiene algunos bug que quedaron pequeños detalles, falto la idea de ponerle unos caracteres que muestre en pantalla la velocidad y eso detalle y mejora, si alguno que lo baja y tien ganas de usarlo o modificalo arreglarle los bug no hay problema.
para generar el avion use los que esta expuesto en la presente pagina.
la idea de avion surgio de un autito, los moviento tambien fueron modificados desde un autito de formula uno que no habian dado, y que voy a subir aparte pare ver desde donde partimos.
Para compilar usamos ZinjaI,http://zinjai.sourceforge.net/, en win xp SP3, freeglut dentro del archivo.rar, hay un archivo lamado Company.zpr, es el archivo de proyecto de ZinjaI, solo tiene que instalar el ZinjaI y habrir este archivo y darle play y el programa tiene que arrancar ( en teoria, siempre puede haber elguan falla, problema de dibrerias y esas cosas).
dentro de la carpeta debug.w32, se crea el ejecutable que se puede mirar el programa sin hacer falta compilar.
dentro del rar hay un archivo -->IMPORTANTE LEER.txt, tiene un explicacion de los comandos para volar el avioncito

el .rar
http://www.filefactory.com/file/a1ea55g/n/TP_Final_Comp_Graf.rar


vicengetorix si queires sube el archivo al hosting de la pagina porque lo subi a uno file hosting gratuito y despues de un tiempo simpre se borran los archivos
IP Logged
 Asunto :Respuesta:Configuracion Visual C++.. 24-11-2009 08:31 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Otros temas
Tema : Configuracion Visual C++

Prueba a copiar el exe al directorio donde esta el fichero del proyecto VC (.vcproj) a ver que pasa.
Si no funciona yo probaria a compilar en modo release, que es la version buena a ver si asi funciona.
Si no, solo se me ocurre algun bug de codigo.
IP Logged
 Asunto :Respuesta:Configuracion Visual C++.. 24-11-2009 06:59 
Cesar Himura
Incorporado: 17-11-2009 22:47
Posts: 9
Localización
Foro : Otros temas
Tema : Configuracion Visual C++

Hola,

Gracias por tu respuesta Vicengetorix.

Tengo el siguiente equema para organizar los diferentes archivos en VC:

MiJuego
|- bin
|- include
|- lib
|- project
|- MiJuego
-|- MiJuego
--|- Debug
|- resources
|- src

En mi configuración pongo como directorio de salida la carpeta bin y ahi me genera el exe que es el que finalmente ejecuto. En el directorio bin tengo todos los DLL además del directorio resources que contiene las imagenes, fuentes y sonidos del juego.

He seguido probando y he notado que si quito algun Bind cuando cargo la textura, genera problemas como el que tengo, cambia la imagen de fondo por otra textura, sigo sin entender que sucede, todos los bind estan en su lugar y en modo debug funciona todo perfecto pero no asi por afuera.

Gracias
Saludos
IP Logged
 Asunto :Respuesta:pregunta sobre el codigo.. 24-11-2009 02:33 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Sobre el curso de programación de juegos
Tema : pregunta sobre el codigo

El producto vectorial de dos vectores es otro vector perpendicular a los anteriores.
Una vez sabido esto, hallar la normal a un triángulo es facil.
Si un triángulo tiene 3 vértices, se usan estos para encontrar dos de los lados del triángulo y usarlos como vectores. Se halla el producto vectorial de estos dos lados y el resultado sera la normal al triangulo. Luego se normaliza para que el vector normal sea de longitud 1.
La explicación de lo que es la normal está en el capítulo 8 de iluminación:
http://unsitioweb.com/videojuegos/76-8-iluminacion
IP Logged
 Asunto :normales.. 24-11-2009 00:36 
cristiaan3003
Incorporado: 12-11-2009 06:22
Posts: 14
Localización
Foro : Sobre el curso de programación de juegos
Tema : pregunta sobre el codigo

hola , bueno ahora la consula es sobre para mi una de la parte mas complicada e importante del asunto, no entiendo la parte matematica de calcular las normales

lo hice en papel para horientarme pero me falta vertices
http://img687.imageshack.us/img687/4680/091123193309.jpg
, nose como hace el dibujito, no tens un esquemita como para verlo?

Calculando las normales.

Caras.normal = i*3;
// Pongo en v1 y v2 dos vectores que pertenecen
// a esta cara.
//Vertices=new GLfloat[NVertices][3];
//Vertices[Caras.vertices[1]][0] seria algo asi como Vertices[triangulo.vertice[1][0] de ese triangulo]

v1[0] = Vertices[Caras.vertices[1]][0] -
Vertices[Caras.vertices[0]][0];

v1[1] = Vertices[Caras.vertices[1]][1] -
Vertices[Caras.vertices[0]][1];

v1[2] = Vertices[Caras.vertices[1]][2] -
Vertices[Caras.vertices[0]][2];

v2[0] = Vertices[Caras.vertices[2]][0] -
Vertices[Caras.vertices[0]][0];

v2[1] = Vertices[Caras.vertices[2]][1] -
Vertices[Caras.vertices[0]][1];

v2[2] = Vertices[Caras.vertices[2]][2] -
Vertices[Caras.vertices[0]][2];

// Calculo el producto vectorial(me da un vector normal)
ProdVectorial(v2, v1, r);
// y lo normalizo(para que tng magnitud uno)
Normaliza(r);
IP Logged
 Asunto :Respuesta:Configuracion Visual C++.. 22-11-2009 23:50 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Otros temas
Tema : Configuracion Visual C++

No creo que sea nada de configuración de VC.
Solo se me ocurren dos posibles causas.
Alguna variable no inicializada que toma valores distintos en la execución desde VC o desde fuera, o que no encuentre la textura. Cuando ejecutas desde VC el directorio activo es en el que está el proyecto, sin embargo el executable lo genera en el directorio debug o release, dentro del directorio de proyecto.
¿Cuando ejecutas el exe, lo copias antes al directorio del proyecto?.
IP Logged
 Asunto :Respuesta:Configuracion Visual C++.. 22-11-2009 09:37 
Cesar Himura
Incorporado: 17-11-2009 22:47
Posts: 9
Localización
Foro : Otros temas
Tema : Configuracion Visual C++

Hola,

Gracias por tu respuesta.

El primer error ya logre corregirlo, pero aún me sigo peleando con el 2do.

Hice un pequeño framework para hacer mas rapido el desarrollo de juegos con SDL y OpenGL. Cuando inicia el programa inicio SDL, OpenGL y los recursos del juego con el primer estado, el del Menu, que es el que se pintará primero. Esta iniciliazación queda fuera del gameloop.

Después de que entra al gameloop y esocojo la opción de jugar, el fondo me lo cambia por el texto que representa la puntuación, si pongo la pausa, me pone el último texto que dibuja en pantalla como background. Si regreso al Menu me lo pinta bien, sin problemas, por lo que el único error es cuando estoy en el Menu y me voy a la opcion de Jugar.

Si cargo el estado de Jugar como pantalla inicial funciona bastante bien, me puedo ir al menu sin problemas pero si regreso a la pantalla de jugar vuelve a fallar.

He revisado toda la carga de texturas y en todas esta el Bind.

Tendrán alguna idea de que pasa??? No se si me falta alguna configuración, todo el dibujo de gráficos lo hago via OpenGL.

Todo funciona perfecto dentro del VC pero fuera (ejecutando el exe) es cuando los problemas vienen.

Gracias
Saludos
IP Logged
 Asunto :Porqué presentar tus trabajos.. 20-11-2009 22:20 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Presentación de trabajos
Tema : Porqué presentar tus trabajos

Por que es una forma de incentivarte para terminarlos y hacerlos mejor, por que no es divertido programar para que nadie vea lo que has hecho y por que a los demás nos gusta ver lo que haces.

No es necesario que sea un superjuego, ni siquiera que sea normal, puede que ni siquiera este terminado o no sea un juego. Aquí todos somos aficionados y estamos aprendiendo.

En 3D, 2D, isometrica, juego, presentación o simplemente un efecto que has conseguido programar (y que a los demás nos gustara saber como lo has hecho).

Basta una descripción, una imagen capturada, puedes mostrar el código si quieres o no, da igual, el tema es compartir tu afición con los demás.
IP Logged
 Asunto :Respuesta:pantalla completa.. 20-11-2009 18:52 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Sobre el curso de programación de juegos
Tema : pantalla completa

Claro, con glut las cosas se hacen de otro modo.

Yo estoy liado con la librería de UnSitioWeb que hace la misma función (más modesta por el momento), aunque ya gestiona la ventana, teclado, ratón y alguna otra cosa:
http://unsitioweb.com/libusw
IP Logged
 Asunto :Respuesta:pantalla completa.. 20-11-2009 14:23 
cristiaan3003
Incorporado: 12-11-2009 06:22
Posts: 14
Localización
Foro : Sobre el curso de programación de juegos
Tema : pantalla completa

hay lo arregle le puse
glutFullScreen();
glutEnterGameMode();
glutSetCursor(GLUT_CURSOR_NONE);
en la inicializacon y sale fullscreen y sin puntero
IP Logged
 Asunto :Respuesta:pantalla completa.. 20-11-2009 13:52 
cristiaan3003
Incorporado: 12-11-2009 06:22
Posts: 14
Localización
Foro : Sobre el curso de programación de juegos
Tema : pantalla completa

emm si es verdad la otra parte del curso no la mire,
bueno lo de pantalla completa lo arregle con ( uso freeglut)
void glutFullScreen ( );
la encontre por prueba y error de casualidad

y lo del raton este me parece que yo no puedo definir esa forma en mi programa, te envio el main que es donde inicialiso "void initialize()" opengl , digo que creo que no voy a poder usar eso porque la forma que inicializo es distinto
http://www.filefactory.com/file/a120522/n/main.cpp
IP Logged
 Asunto :Respuesta:pantalla completa.. 19-11-2009 18:48 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Sobre el curso de programación de juegos
Tema : pantalla completa

Veo que no has seguido el curso de programación de juegos de UnSitioWeb ...

Bueno, sin ir más lejos hay va el enlace:
http://unsitioweb.com/videojuegos/89-13-pantalla-completa-y-cambio-de-resolucion

El tema de no ver el ratón no está en el curso. La función windows para eso es simplemente "SetCursor(FALSE)". A partir de ahí deberas pintarlo tú cada frame.

El tema del teclado también está en el curso:
http://unsitioweb.com/videojuegos/79-10-teclado-raton-y-camara
IP Logged
 Asunto :Respuesta:Configuracion Visual C++.. 19-11-2009 18:37 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Otros temas
Tema : Configuracion Visual C++

Cuando ejecutas desde el IDE,aún en modo release, el VC está en medio haciendo algo parecido a debug. Aunque normalmente sea lo mismo, la ejecución de verdad es la del exe.

El fallo, por lo que a mi me ha pasado, lo mas normal es que sea un problema de acceso a memoria no reservada, bien porque te sales de rango en un array o porque un puntero no tiene el valor que debe (es conveniente siempre inicializar los punteros a NULL y comprobar si es o no NULL al usarlos o liberar su memoria).

El segundo tema tiene pinta de que se te ha olvidado hacer bind de la textura cada vez que pintas el fondo. A veces se hacen cosas al inicializar el programa y luego, cuando complicas más el programa te olvidas de incluir cosas en el bucle principal o en algún momento determinado de la ejecución (como un cambio de pantalla por ejemplo).
IP Logged
 Asunto :pantalla completa.. 19-11-2009 17:33 
cristiaan3003
Incorporado: 12-11-2009 06:22
Posts: 14
Localización
Foro : Sobre el curso de programación de juegos
Tema : pantalla completa

hola, sabes como hacer o tiene alguna funcioncita hecha que me haga fullscreen?? y para desaparecer el mause ahi algo?
aca te adjunto una foto para que veas lo que quiero que no se vea
http://img695.imageshack.us/img695/9324/dibujoph.jpg

en opengl, no hay una funcion ni nada que me retone la tecla que tengo presionada (por ejemplo supongamos el numero 6), ahi alguna libreria que tenga eso?( bueno eso lo solucione mas o menos pero podria haber algo mejor). otra cosa, lo que no pude solucionar es que por ejemplo cuando hago doblar el avion apreto la tecla dobla un poquito y un segundo despues empiesa a doblar bien ( tipo cuando presionamos una tecla en word la dejamos apretada, escribe una y despues recien repite),con eso pierdo naturalidad en el movimiento, es un avion pero si fuera un auto me pasaria de largo en una curva. para esto ahi algo hecho?
IP Logged
 Asunto :Configuracion Visual C++.. 19-11-2009 08:02 
Cesar Himura
Incorporado: 17-11-2009 22:47
Posts: 9
Localización
Foro : Otros temas
Tema : Configuracion Visual C++

Hola,

Llevo poco usando el Visual C++ Express 2008, estoy por acabar un juego con SDL y OpenGL.

Cuando construyo el proyecto en modo "Release" lo hace bien e incluso funciona sin errores desde Visual C++ pero cuando me voy a ejecutar el exe saca bien la pantalla del menu pero cuando me paso al juego (gameplay) truena, simplemente manda la ventana de "Enviar Errores" o "No enviar".

Otra cosa que sucede es: Ejecuto el exe, me muestra bien el menu, voy a la pantalla de instrucciones y todo bien, cuando regreso al menu, la textura de fondo la cambia por otra textura que es un texto que pertence al menu.

Que podría estar pasando???

Gracias
Saludos
IP Logged
 Asunto :Respuesta:Me presento.. 18-11-2009 21:11 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Presentación de nuevos foreros
Tema : Me presento

Bienvenido a UnSitioWeb y gracias por las felicitaciones.
IP Logged
 Asunto :Me presento.. 18-11-2009 18:39 
Cesar Himura
Incorporado: 17-11-2009 22:47
Posts: 9
Localización
Foro : Presentación de nuevos foreros
Tema : Me presento

Hola,

Mi nombre es César :-D , soy Ing. en Informática y soy de México.

Una de mis grandes pasiones es el desarrollo de videojuegos. He desarrollado varios videojuegos pequeños su mayoria en Java (no para celulares).

Actualmente estoy desarrollando algunos juegos en C++ con SDL y OpenGL.

Felicitaciones por UnSitioWeb!!!!

Saludos
IP Logged
 Asunto :Respuesta:pregunta sobre el codigo.. 17-11-2009 15:24 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Sobre el curso de programación de juegos
Tema : pregunta sobre el codigo

Claro. El formato COB da muchos datos que yo no uso en el programa porque no me hacen falta.
Voy leyendo líneas hasta que encuentro el dato que me interesa.

Acumulo en V el número de vértices porque podría encontrarme más de un malla formando el objeto (el rino es una sola pero es triciclo son varias, mira dentro del archivo COB). En caso de ser más de una malla las cargo en mi programa como si fueran una y luego ordeno los vértices por el material de cada triángulo para ahorrar cambios de material al pintar.

strtok es una función que sirve para trocear una cadena en tokens (trozos) separados por un carácter: http://www.conclase.net/c/librerias/funcion.php?fun=strtok
La primera vez le dices la cadena a trocear y la cadena que contiene los carácteres delimitadores. Ejemplo:
Cadena: "aaaaaa bbbbbbb ccccccc-ddddddd/eeeeeee"
la llamada a strtok(cadena," -/") dara por retorno un puntero a la cadena "aaaaaa".
Las sucesivas veces la llamas con NULL como primer parámetro retronaran los siguientes campos o tokens.
La segunda llamada sería strtok(NULL, " -/"), ya no haría falta decirle la cadena.
Retornaría un puntero a la cadena "bbbbbbb".
Una tercera llamada retornaria "ccccccc", una cuarta "ddddddd" y la quinta "eeeeeee".
Siguientes llamadas retornan NULL.

En una función puedes dar un valor por defecto a los parametros. En el caso concreto de la función IndiceCara, si el segundo parámetro no se lo pongo asumirá que tiene un valor de 1 (1 retorna el primer valor -34- y 2 retorna el segundo -270-).

Te aconsejo que alguna función, como esta, la rehagas tú mismo. No me siento particularmente contento de su implementación.
IP Logged
 Asunto :Respuesta:pregunta sobre el codigo.. 17-11-2009 03:08 
cristiaan3003
Incorporado: 12-11-2009 06:22
Posts: 14
Localización
Foro : Sobre el curso de programación de juegos
Tema : pregunta sobre el codigo

hamm entiedno
en la variable "c" guardas digamos el muero de maximo de espacios por linea y en campo lo que hay entre cada espacio. y el 200 es que va a leer una linea de max 200 caracteres .

otra cosa
en
//es como que saltar la 7 primera lineas para empezar a leer desde donde
me interesa que es desde la matris de transformacion??
cob.leelinea(7);??

// Sumo el numero de vertices de esta malla al
// de vertices que llevamos.
V+=atoi(cob.campo[2]);
para que acumulas? en por ejemplo rino.cob tiene 229 Wold Vertices, asi que la primera ves que pasa pone V=229, con eso no estaria ya??

strtok que hace con--> "<34,270>".
lei ayuda en internet de la funcion pero no entiendo la explicacion, no tienes una explicacion tuya clara y cortita?
en
int IndiceCara(puntero a la cadena,int p=1-->esto que seria??)
tp:trabajo practico. tengo un trabajo practico de computacion grafica con opengl
IP Logged
 Asunto :Respuesta:pregunta sobre el codigo.. 16-11-2009 23:32 
Vicengetorix
Incorporado: 27-12-2008 18:54
Posts: 99
Localización
Foro : Sobre el curso de programación de juegos
Tema : pregunta sobre el codigo

Perdona, ¿haciendo tp?
IP Logged
Página #  « InicioAnterior12345678910SiguienteFin »


Powered by ccBoard




Banner