Un detalle que se me venía escapando casi desde los inicios del proyecto es la inicialización manual de Ogre, para evitar el diálogo de configuración al inicio cada vez que se desee reconfigurar la aplicación. El proceso está documentado en el libro de Ogre (el único libro, por el momento). Normalmente el error era algo relacionado con una arreglo fuera de límites. Ayer hice otro intento más y esta vez sí funcionó.
No logré cargar los plugins, sin embargo esto es un problema mínimo pues es un archivo que no cambia y no debe ser tocado por el usuario, al igual que el de recursos. Por tanto, la inicialización manual incluye solo el establecimiento de la resolución de video, el modo pantalla completa/ventana y otras opciones relacionadas con los gráficos. Estas opciones se guardan en el perfil del jugador, así que pueden ser específicas de cada usuario. El código quedaría así:
//inicializamos Root, pero solo cargando los plugins
root = new Root("plugins.cfg");
//buscamos los rendersystem disponibles a ver si tenemos OpenGL
RenderSystemList rl = root->getAvailableRenderers();
RenderSystemList::iterator it = rl.begin();
while (it !=rl.end()) {
rSys=*(it++);
if (rSys->getName().find("OpenGL")) {
root->setRenderSystem(rSys);
break;
}
}
root->setRenderSystem(rSys);
rSys->setConfigOption("Full Screen", "Yes");
rSys->setConfigOption("VSync", "No");
rSys->setConfigOption("Video Mode", "800 x 600 @ 32-bit colour");
window = root->initialise(true, "ark");
Me faltaría implementar una ventana de configuración dentro del juego con las opciones que se pueden modificar, la lista de renderers disponibles, los modos que ofrece cada uno, etc.
No logré cargar los plugins, sin embargo esto es un problema mínimo pues es un archivo que no cambia y no debe ser tocado por el usuario, al igual que el de recursos. Por tanto, la inicialización manual incluye solo el establecimiento de la resolución de video, el modo pantalla completa/ventana y otras opciones relacionadas con los gráficos. Estas opciones se guardan en el perfil del jugador, así que pueden ser específicas de cada usuario. El código quedaría así:
//inicializamos Root, pero solo cargando los plugins
root = new Root("plugins.cfg");
//buscamos los rendersystem disponibles a ver si tenemos OpenGL
RenderSystemList rl = root->getAvailableRenderers();
RenderSystemList::iterator it = rl.begin();
while (it !=rl.end()) {
rSys=*(it++);
if (rSys->getName().find("OpenGL")) {
root->setRenderSystem(rSys);
break;
}
}
root->setRenderSystem(rSys);
rSys->setConfigOption("Full Screen", "Yes");
rSys->setConfigOption("VSync", "No");
rSys->setConfigOption("Video Mode", "800 x 600 @ 32-bit colour");
window = root->initialise(true, "ark");
Me faltaría implementar una ventana de configuración dentro del juego con las opciones que se pueden modificar, la lista de renderers disponibles, los modos que ofrece cada uno, etc.
Comentarios
Publicar un comentario