Bueno es mi primer post, soy nuevo aqui, sólo es saludar a la peña, llevo años dedicados a esto de la programación fundmentalmente base de datos, ya estoy un poco quemado de las sql, asi que voy hacer algo en el tema del videojuego, haber como se da.
-Ya tengo algo hecho, estoy haciendo algunas funciones en irrlicht, parece que es interesante este motor, en realidad me estoy montando una lib a partir del irrlicht, lo que estoy haciendo es quitar la programción poo de irrlicht y hacerla tipo funciones, supongo que será una tonteria, pero creo que es mas efectiva, ya me contaran.
Un saludo a todos.
Bienvenido! a ver si nos muestras algo :)
Claro aqui va algo es un bsp del quake 3
En realidad con la lib creo que se podria hacer ya un juego, creo, puesto que está casi todo, falta el audio
Saludos
(http://www.raditaudiopro.com/descargas/capturas/val/1.jpg)
(http://www.raditaudiopro.com/descargas/capturas/val/2.jpg)
(http://www.raditaudiopro.com/descargas/capturas/val/3.jpg)
Hola, victor.
Citar
-Ya tengo algo hecho, estoy haciendo algunas funciones en irrlicht, parece que es interesante este motor, en realidad me estoy montando una lib a partir del irrlicht, lo que estoy haciendo es quitar la programción poo de irrlicht y hacerla tipo funciones, supongo que será una tonteria, pero creo que es mas efectiva, ya me contaran.
Creo que es una muy buena forma de practicar el destripar una engine para adaptarla a tus necesidades. Así vas viendo como funciona por dentro y más cosas que solo los forenses pueden sentir :D.
Pero, en un sentido más práctico, prefiero la estructuración POO mil veces que cualquier otra, y más aún para videojuegos. No hay nada tan cómodo como poder estruucturar las partes del engine en subsistemas y meter ahí las funciones y los datos concernientes.
Con programación estructurada a pelo queda algo más "guarro", por decirlo de alguna forma.
No me extiendo más porque hoy estoy como los zombies. Hasta otra,
bienvenido Victor!!
Yo ya te conocia del "maravilloso" foro de Entidad 3D.
http://www.entidad-3d.com/foro/viewtopic.p...f20497e030974daDigo maravilloso porque gracias a ese foro (no con tu post, sino con otros que deberias conocer) me lo he pasado en grande.
Animo y dale duro!! (ole)
MrSickman, no le entiendo, pero si, parece que hize alguna comparación que no sentó bien en fin, pedí disculpas y listo.
///*=============================================================
//Ejemplo usando Valkiria
//By Victor
//==================================================================
#include <valkiria.h> //la libreria
int main()
{
// create device
ValSetMode(800,600,16,false); //crea el driver de video
ValCls(); //borra la pantalla
ValLoadIntro("../../media/intro.jpg",1,1); //carga imagen intro
ValFrame(); //la hace visible
IdItem item1=ValLoadItem("../../media/centercon.jpg"); //cargamos grafico item
ValItemAlpha(item1); //lo ponemos canal alpha para trasparencias
ValLoadMap("../../media/pak0.pk3","../../media/q3ctf3.bsp"); //carga el mapa que esta dentro del zip
ValLoadFont("../../media/font1.bmp"); //carga la fuente de letras
ValCaption(L"Valkiria Game"); //nombre en la ventana
ValSetCursor(false); //oculta raton
ValUnloadIntro(); //descarga la intro
//***************creamos el cielo **********************
ValSky(
"../../media/space1_up.jpg",
"../../media/space1_dn.jpg",
"../../media/space1_lf.jpg",
"../../media/space1_rt.jpg",
"../../media/space1_ft.jpg",
"../../media/space1_bk.jpg");
//ponemos efecto de iluminción falta por encapsular en la libreria
node->setMaterialType(video::EMT_LIGHTMAP_ADD);
// ValMapCollision(); //ajusta las colisiones del mapa
ValFpsCam(100.0f,300.0f); //creamos una camara fps
ValFpsPos(0,100,700); //posicionamos la camara
ValFpsRot(180); //rotamos la camara
ValFpsGra(-3); // aplicamos gravedad
//======================================================
// creamos una entidad
//=======================================================
IdMd2 sy = ValLoadMd2("../../media/sydney.md2"); //cargamos modelo
IdModel symo = ValCreateMd2(sy); //creamos entidad
ValMd2Collision(sy,symo); //hacemos que la camara no lo traspase
ValMd2Texture(symo,"../../media/sydney.bmp"); //aplicamos la piel
ValMd2Pos(symo,0,50,800); //la posicionamos
ValMd2Rot(symo,0,90,0); // la rotamos
ValMd2Sca(symo,1,1,1); //la scalamos
ValMd2AniName(symo,"flip"); //le aplicamos animacion
ValMd2AniSpeed(symo,30); //velocidad de la animacion
//============================================================
// creamos un arma
//===========================================================
IdMd2 sy1 = ValLoadMd2("../../media/gum.md2");
IdModel symo1 = ValCreateMd2(sy1);
ValMd2Texture(symo1,"../../media/gum.bmp");
ValMd2Pos(symo1,20,-20,40);
ValMd2Rot(symo1,0,-90,0);
ValMd2Sca(symo1,1,1,1);
ValMd2FrameLoop(symo1,0,0); //no queremos animacion
ValFpsGum(symo1); //aplicamos el arma a la camara fps
while(device->run())
{
driver->beginScene(true, true, 0);
smgr->drawAll();
guienv->drawAll();
//sacamos textos y item
ValText(L"Point:",10,510,200,50,0,255,0);
ValText(0,150,510,420,50,255,0,0);
ValItem(item1,0,0,128,128);
ValFrame();
device->drop();
return 0;
}
(http://www.raditaudiopro.com/descargas/capturas/val/4.jpg)
...
Construyendo una librería sobre él
Como puende ver en el codigo, intento quitar las clases, creando funciones, no sé si es una tontería, pero creo que el codigo es más facil de entender.
En esa linea va toda la libreria, las funciones empiezan por Val.. y los nuevos tipos por ID...
Saludos