


CSceneNodeAnimator3PCamera *camAnim;
player->setVisible(true);
player->setPosition(x,y,z);
irr::scene::ICameraSceneNode* camera = smgr->addCameraSceneNode();
camera->setPosition(irr::core::vector3df(300,300,700));
// Create triangle selector for world (copied from collision example)
irr::scene::IMetaTriangleSelector * worldselector = smgr->createMetaTriangleSelector();
for( MapList::iterator it = spotMap.begin(); it != spotMap.end(); ++it )
{
Block* b = it->second;
irr::scene::ITriangleSelector* s = smgr->createTriangleSelectorFromBoundingBox(b->node);
b->node->setTriangleSelector(s);
worldselector->addTriangleSelector(s);
s->drop();
}
// Create the camera animator
camAnim = new CSceneNodeAnimator3PCamera(smgr,device->getCursorControl(),player->node,50,180,10,irr::core::vector3df(0,20,0));
camera->addAnimator(camAnim);
camAnim->drop();
// Add collision response to camera (second, because order is important!)
irr::scene::ISceneNodeAnimator *cameraCollision = smgr->createCollisionResponseAnimator(
worldselector,camera,irr::core::vector3df(3,5,3),
irr::core::vector3df(0,0,0), 0.0f,
irr::core::vector3df(0,5,0));
camera->addAnimator(cameraCollision);
cameraCollision->drop();
// Create the player animator
irr::scene::ISceneNodeAnimator* playerAnim = new CSceneNodeAnimator3PPlayer(smgr,camera,camAnim);
player->node->addAnimator(playerAnim);
playerAnim->drop();
// Add collision response to player (copied from collision example)
irr::core::vector3df playerDimensions = player->mesh->getBoundingBox().MaxEdge - player->mesh->getBoundingBox().MinEdge;
irr::scene::ISceneNodeAnimator *playerCollision = smgr->createCollisionResponseAnimator(worldselector,player->node,playerDimensions/2.0f);
player->node->addAnimator(playerCollision);
playerCollision->drop();
Return to FAQs, Tutorials, Howtos, and external tool lists
Users browsing this forum: No registered users and 1 guest