本文整理汇总了C++中IAnimatedMeshSceneNode::addAnimator方法的典型用法代码示例。如果您正苦于以下问题:C++ IAnimatedMeshSceneNode::addAnimator方法的具体用法?C++ IAnimatedMeshSceneNode::addAnimator怎么用?C++ IAnimatedMeshSceneNode::addAnimator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAnimatedMeshSceneNode
的用法示例。
在下文中一共展示了IAnimatedMeshSceneNode::addAnimator方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Mesh3DInitScene
void Mesh3DInitScene()
{
IAnimatedMesh* mesh;
IAnimatedMeshSceneNode* node;
scene::ISceneNodeAnimator* anim;
scene::ISceneManager* smgr = IrrlichtManager::GetIrrlichtManager()->GetScene();
IrrlichtDevice* device = IrrlichtManager::GetIrrlichtManager()->GetDevice();
video::IVideoDriver* driver = IrrlichtManager::GetIrrlichtManager()->GetDriver();
std::string load_zip;
std::string load_data;
std::string reload_path;
FileSystemZip* pfilesystem = NULL;
io::IReadFile* memfile = NULL;
byte* apk_buffer = NULL;
byte* buff_extract = NULL;
int size = 0;
int apk_size = 0;
if (!IrrlichtManager::GetIrrlichtManager()->GetDevice())
{
LogError("Error initializing Irrlicht");
return;
}
IrrlichtManager::GetIrrlichtManager()->GetDevice()->getTimer()->setTime(0);
smgr->addLightSceneNode(0, core::vector3df(-100,10,0), video::SColorf(1.0f, 1.0f, 1.0f, 1.0f), 200.0f);
smgr->addLightSceneNode(0, core::vector3df(+100,10,0), video::SColorf(1.0f, 1.0f, 1.0f, 1.0f), 200.0f);
//////////////////////////////mesh/////////////////////////////////////////////////
load_zip = (GetBaseAppPath() + "game/ninja.zip").c_str();
load_data = "ninja.b3d";
reload_path = (GetBaseAppPath() + "game/ninja.b3d").c_str();
#ifdef ANDROID_NDK
apk_buffer = FileManager::GetFileManager()->Get(load_zip.c_str(), &apk_size, false, false);
if( apk_buffer )
{
pfilesystem = new FileSystemZip();
pfilesystem->Init_unzMemory(apk_buffer, apk_size);
buff_extract = pfilesystem->Get_unz(load_data, &size);
delete apk_buffer;
apk_buffer = NULL;
}
#else
pfilesystem = new FileSystemZip();
pfilesystem->Init_unz(load_zip.c_str());
buff_extract = pfilesystem->Get_unz(load_data.c_str(), &size);
#endif
memfile = device->getFileSystem()->createMemoryReadFile(buff_extract, size, reload_path.c_str(), true);
//new buffer copy on file->read(Buffer, size) of CXMeshFileLoader::readFileIntoMemory
mesh = smgr->getMesh( memfile );
node = smgr->addAnimatedMeshSceneNode( mesh );
//delete buff_extract in drop() then goto ~CMemoryReadFile
memfile->drop();
if( pfilesystem )
{
delete pfilesystem;
pfilesystem = NULL;
}
//////////////////////////////texture/////////////////////////////////////////////////
node->setMaterialTexture( 0, driver->getTexture((GetBaseAppPath()+"game/nskinbl.jpg").c_str()) );
node->setMaterialFlag(EMF_LIGHTING, true);
node->setMaterialFlag(EMF_NORMALIZE_NORMALS, true);
anim = smgr->createRotationAnimator(core::vector3df(0,0.3f,0));
node->addAnimator(anim);
anim->drop();
u32 alpha_val = 90;
u32 MaterialCount = node->getMaterialCount();
for(u32 i=0; i<MaterialCount; i++)
{
video::SMaterial& tex_mat = node->getMaterial(i);
tex_mat.MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
//tex_mat.MaterialTypeParam = 0.1;
//tex_mat.MaterialTypeParam2= 0.1;
tex_mat.AmbientColor.setAlpha(alpha_val);
tex_mat.DiffuseColor.setAlpha(alpha_val);
tex_mat.SpecularColor.setAlpha(alpha_val);
tex_mat.EmissiveColor.setAlpha(alpha_val);
}
#if defined(_IRR_COMPILE_WITH_OGLES2_)
for(u32 i=0; i<mesh->getMeshBufferCount(); i++)
{
scene::IMeshBuffer* buffer = mesh->getMeshBuffer(i);
video::S3DVertex* vertex = (video::S3DVertex*)buffer->getVertices();
for(u32 j=0; j<buffer->getVertexCount(); j++)
{
vertex[j].Color.setAlpha(alpha_val);
//.........这里部分代码省略.........
示例2: main
int main()
{
Input input;
IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D9, dimension2d<u32>(800, 600), 16, false, true, false, &input);
device->setWindowCaption(L"Seas of Gold");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
E_DRIVER_TYPE driverType = driverChoiceConsole();
EffectHandler *effect = new EffectHandler(device, driver->getScreenSize(), false, true);
E_FILTER_TYPE filterType = (E_FILTER_TYPE)core::clamp<u32>((u32)3 - '1', 0, 4);
MapID currentMap;
int skyR = 30, skyG = 30, skyB = 70;
int timer = 0;
SColor sky = SColor(255, skyR, skyG, skyB);
float plPos_x = 0.0f, plPos_y = 0.0f, plPos_z = 0.0f;
bool updateCam = true;
bool menu1 = false;
int state = Main;
int frameCount = 0;
LoadMap loadMap;
Player player;
Interface playerInterface(driver);
ITriangleSelector* selector = 0;
ISceneNodeAnimator* anim = 0;
Vendor southVendor;
Vendor eastVendor;
Vendor northVendor;
//InitializeVendors(northVendor, southVendor, eastVendor, itemD);
//ItemDatabase* itemD = new ItemDatabase;
ItemDatabase itemD;
itemD.Initialize();
//initialize player's inventory
player.AddGold(1000);
player.getInventory()->addItem(itemD.getItem(bronzeOre), 50);
player.getInventory()->addItem(itemD.getItem(ironOre), 50);
player.getInventory()->addItem(itemD.getItem(goldOre), 50);
//initialize south vendor's inventory
southVendor.getInventory()->addItem(itemD.getItem(bronzeOre), 100);
southVendor.getInventory()->addItem(itemD.getItem(coalOre), 100);
southVendor.getInventory()->addItem(itemD.getItem(supplies), 1000);
//initialize north vendor's inventory
northVendor.getInventory()->addItem(itemD.getItem(obsidianOre), 50);
northVendor.getInventory()->addItem(itemD.getItem(supplies), 1000);
//initialize south vendor's inventory
eastVendor.getInventory()->addItem(itemD.getItem(goldOre), 100);
eastVendor.getInventory()->addItem(itemD.getItem(ironOre), 100);
eastVendor.getInventory()->addItem(itemD.getItem(supplies), 1000);
//Item item(0, "bronzeOre", "Sprites/ore_Bronze.png");
//Item item2 = item;
//Item* item2 = itemD.getItem(3);
//inventory.addItem(&item, 2);
//inventory.addItem(&item, 2);
//inventory.addItem(item2, 2);
//int test = 0;
// Load the map scene
//loadMap.Load(smgr, device, Map_Africa);
//loadMap.Load(smgr, device, Map_India);
//loadMap.Load(smgr, device, selector, plyrNode, anim, Map_England);
IAnimatedMeshSceneNode* plyrNode = player.loadPlayerNode(device, smgr);
//plyrNode->setDebugDataVisible((scene::E_DEBUG_SCENE_TYPE)(plyrNode->isDebugDataVisible() ^ scene::EDS_BBOX));
ICameraSceneNode* camera = smgr->addCameraSceneNode(0, plyrNode->getPosition() + vector3df(0, 2, 2), vector3df(0, 0, 100));
loadMap.Load(smgr, device, selector, plyrNode, anim, driver, Map_Africa);
currentMap = Map_Africa;
//loadMap.setCollisions(smgr, selector, plyrNode, anim);
if (loadMap.CollNode)
{
selector = smgr->createOctreeTriangleSelector(loadMap.CollNode->getMesh(), loadMap.CollNode, 32);
for (int i = 0; i < loadMap.CollNode->getMaterialCount(); i++)
{
loadMap.CollNode->getMaterial(i).NormalizeNormals = true;
}
loadMap.CollNode->setTriangleSelector(selector);
}
if (selector)
{
anim = smgr->createCollisionResponseAnimator(selector, plyrNode, vector3df(0.6f, 0.75f, 0.4f), core::vector3df(0.0f, -0.05f, 0.0f),
core::vector3df(0.0f, -0.725f, 0.0f));
plyrNode->addAnimator(anim);
}
ISceneCollisionManager* collMan = smgr->getSceneCollisionManager();
////////////// The Sun ////////////
ILightSceneNode *sun_node;
SLight sun_data;
//.........这里部分代码省略.........
示例3: Mesh3DInitScene
void Mesh3DInitScene()
{
IAnimatedMesh* mesh;
IAnimatedMeshSceneNode* node;
scene::ISceneNodeAnimator* anim;
scene::ISceneManager* smgr = IrrlichtManager::GetIrrlichtManager()->GetScene();
IrrlichtDevice* device = IrrlichtManager::GetIrrlichtManager()->GetDevice();
video::IVideoDriver* driver = IrrlichtManager::GetIrrlichtManager()->GetDriver();
std::string load_zip;
std::string load_data;
std::string reload_path;
FileSystemZip* pfilesystem = NULL;
io::IReadFile* memfile = NULL;
byte* apk_buffer = NULL;
byte* buff_extract = NULL;
int size = 0;
int apk_size = 0;
if (!IrrlichtManager::GetIrrlichtManager()->GetDevice())
{
LogError("Error initializing Irrlicht");
return;
}
IrrlichtManager::GetIrrlichtManager()->GetDevice()->getTimer()->setTime(0);
smgr->addLightSceneNode(0, core::vector3df(-100,10,0), video::SColorf(1.0f, 1.0f, 1.0f, 1.0f), 200.0f);
smgr->addLightSceneNode(0, core::vector3df(+100,10,0), video::SColorf(1.0f, 1.0f, 1.0f, 1.0f), 200.0f);
//////////////////////////////mesh/////////////////////////////////////////////////
load_zip = (GetBaseAppPath() + "game/squirrel.zip").c_str();
load_data = "squirrel.x";
reload_path = (GetBaseAppPath() + "game/squirrel.x").c_str();
#ifdef ANDROID_NDK
apk_buffer = FileManager::GetFileManager()->Get(load_zip.c_str(), &apk_size, false, false);
if( apk_buffer )
{
pfilesystem = new FileSystemZip();
pfilesystem->Init_unzMemory(apk_buffer, apk_size);
buff_extract = pfilesystem->Get_unz(load_data, &size);
delete apk_buffer;
apk_buffer = NULL;
}
#else
pfilesystem = new FileSystemZip();
pfilesystem->Init_unz(load_zip.c_str());
buff_extract = pfilesystem->Get_unz(load_data.c_str(), &size);
#endif
memfile = device->getFileSystem()->createMemoryReadFile(buff_extract, size, reload_path.c_str(), true);
//new buffer copy on file->read(Buffer, size) of CXMeshFileLoader::readFileIntoMemory
mesh = smgr->getMesh( memfile );
node = smgr->addAnimatedMeshSceneNode( mesh );
//delete buff_extract in drop() then goto ~CMemoryReadFile
memfile->drop();
if( pfilesystem )
{
delete pfilesystem;
pfilesystem = NULL;
}
//////////////////////////////texture/////////////////////////////////////////////////
node->setMaterialTexture( 0, driver->getTexture((GetBaseAppPath()+"game/squirrel_skin.jpg").c_str()) );
node->setMaterialFlag(EMF_LIGHTING, true);
node->setMaterialFlag(EMF_NORMALIZE_NORMALS, true);
anim = smgr->createRotationAnimator(core::vector3df(0,0.3f,0));
node->addAnimator(anim);
anim->drop();
//////////////////////////////////cam/////////////////////////////////////////////
ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0, 100.0f, .02f, 0, 0, 0, true, 1.0f);
//camera->addCameraSceneNode(0, vector3df(0,2,-10));
camera->setPosition(core::vector3df(0,2,-10));
float fov = float(GetPrimaryGLX())/ float(GetPrimaryGLY());
camera->setAspectRatio(fov);
camera->setFOV((120 * M_PI / 360.0f));
#ifdef _IRR_COMPILE_WITH_GUI_
EventControlComponent* receiver = new EventControlComponent();
receiver->AddGuiButton();
device->setEventReceiver(receiver);
#endif
}