sorry i'm not a progammer, i have no idea where to change the parent scene for the camera to get from solig mesh to the elevator and back again.
help please
code:
int main()
{
MyEventReceiver receiver;
device = createDevice(video::EDT_DIRECTX8,
core::dimension2d<s32>(800, 600),
32, false, false, false, &receiver);
// Fensterbeschriftung
device->setWindowCaption(L"3D VIEWER - powered by Irrlicht Engine - Beenden = ALT+F4");
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
// verschl datensatz
device->getFileSystem()->addZipFileArchive("daten/3d.pk3");
// camera
scene::IMetaTriangleSelector* metaselector = smgr->createMetaTriangleSelector();
scene::ICameraSceneNode* camera =
camera = smgr->addCameraSceneNodeFPS(0,100.0f,300.0f);
camera->setPosition(core::vector3df(0,150,0));
// collisionserkennung - camera
scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(
metaselector, camera, core::vector3df(30,50,30),
core::vector3df(0,-100,0), 100.0f,
core::vector3df(0,100,0));
camera->setFarValue (8000.0f);
camera->addAnimator(anim);
anim->drop();
// solid-oberflächen
scene::IAnimatedMeshSceneNode* mesh = 0;
scene::IAnimatedMesh* solid = smgr->getMesh("solid.3ds");
// geometrieerkenner für collision
scene::ITriangleSelector* selectormesh = 0;
if (solid)
{
mesh = smgr->addAnimatedMeshSceneNode(solid);
mesh->setMaterialType(video::EMT_SOLID);
// erkennung für collision
selectormesh = smgr->createTriangleSelector(solid->getMesh(0), mesh);
mesh->setTriangleSelector(selectormesh);
metaselector->addTriangleSelector(selectormesh);
}
// aufzug mit animation
scene::IAnimatedMeshSceneNode* aufzug = 0;
scene::IAnimatedMesh* move = smgr->getMesh("aufzug.3ds");
scene::ITriangleSelector* selectormove = 0;
scene::ISceneNodeAnimator* sa = 0;
core::array<core::vector3df> points;
points.push_back(core::vector3df(0.0f, 50.0f, 0.0f)); // Start
points.push_back(core::vector3df(0.0f, 440.0f, 0.0f)); //ziel
points.push_back(core::vector3df(0.0f, 440.0f, 0.0f)); //ziel
points.push_back(core::vector3df(0.0f, 50.0f, 0.0f)); // start
if (move)
{
aufzug = smgr->addAnimatedMeshSceneNode(move);
aufzug->setMaterialType(video::EMT_SOLID);
driver->setTextureCreationFlag(video::ETCF_OPTIMIZED_FOR_QUALITY, false);
selectormove = smgr->createTriangleSelector(move->getMesh(0), aufzug);
aufzug->setTriangleSelector(selectormove);
metaselector->addTriangleSelector(selectormove);
sa = smgr->createFollowSplineAnimator(0,
points, 0.2f);
aufzug->addAnimator(sa);
selectormove = smgr->createTriangleSelector(move->getMesh(0), aufzug);
aufzug->setTriangleSelector(selectormove);
metaselector->addTriangleSelector(selectormove);
sa->drop();
}
device->getCursorControl()->setVisible(false);
int lastFPS = -1;
while(device->run())
{
driver->beginScene(true, true, video::SColor(0,200,200,200));
smgr->drawAll();
driver->endScene();
}
device->drop();
return 0;
}