#include <irrlicht.h>
//los namespace para definir funciones de irrlicht
using namespace irr;
using namespace core;
using namespace video;
using namespace scene;
#if defined(_MSC_VER)
#pragma comment(lib, "Irrlicht.lib")
#endif
int main()
{
//define un device para la pantalla
IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2d<u32>(640, 480), 16, false,
false, false, 0);
//en caso de error
if (!device)
return 1;
//Creo un driver de video
IVideoDriver *driver = device->getVideoDriver();
//Creo una manejador de escena
ISceneManager *scene = device->getSceneManager();
//Se agrega un animation mesh, el modelo debe contener una animacion ya establecida
//este modelo viene en la carpeta de media cuando descargamos irrlicht
IAnimatedMesh *mesh = scene->getMesh("sydney.md2");
//Creo un nodo de animacion
IAnimatedMeshSceneNode *node = scene->addAnimatedMeshSceneNode(mesh);
if (node)
{
//Agrego una de las animaciones integradas en el modelo
node->setMD2Animation(EMAT_ATTACK);
//Agrego la velocidad con la que quiero que se reproduzca la animacion
node->setAnimationSpeed(25);
//Agrego mi textura e iluminacion
node->setMaterialFlag(EMF_LIGHTING, false);
node->setMaterialTexture(0, driver->getTexture("sydney.bmp"));
}
//agrego una vista o camara
scene->addCameraSceneNode(0, vector3df(0, 30, -40) , vector3df( 0 , 5 , 0));
//Gameloop
while (device->run())
{
driver->beginScene(true, true, SColor(255,255,255,255));
scene->drawAll();
driver->endScene();
}
//cerrar device
device->drop();
return 0;
}
No hay comentarios:
Publicar un comentario