nach bewältigung der Camera Problematik steht gleich das nächste Problem vor der Tür
ich versuche ein objekt nach abfrage einer variable zu bewegen allerdings funktioniert das nicht. ich habe die abfrage der bewegung nach dem erstellen des obj. angehängt doch meiner vermutung nach wird dieser teil nur einmal beim erstellen der exe abgefragt und da die variable dort noch den wert 0 hat wird einfach der letzte teil als gegeben behandelt was mir aber nicht logisch ist. Die Zaehler variable bilde ich in einer Funktion außerhalb von main()
Code:
int main()
{
int zaehler = 0;
zeiger =&Zaehler;
...
scene::IAnimatedMesh* hafencontainer = smgr->getMesh("../../media/container.3ds");
scene::IAnimatedMeshSceneNode* ahafennode9 = 0;
scene::ISceneNode* collnodehafen9 = 0;
ahafennode9 = smgr->addAnimatedMeshSceneNode(hafencontainer);
ahafennode9->setPosition(core::vector3df(21000,-100,-25500));
//ahafennode9->setMaterialFlag( video::EMF_LIGHTING, false );
ahafennode9->getMaterial(0) = material18;
// add shadow
ahafennode9->addShadowVolumeSceneNode();
//smgr->setShadowColor(video::SColor(150,0,0,0));
// make the model a little bit bigger and normalize its normals
// because of this for correct lighting
ahafennode9->setScale(core::vector3df(45,45,45));
ahafennode9->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);
scene::ITriangleSelector* selector18 = smgr->createOctTreeTriangleSelector(hafencontainer->getMesh(0), ahafennode9, 128);
collnodehafen9 = smgr->addOctTreeSceneNode(hafencontainer);
collnodehafen9->setScale(core::vector3df(45,45,45));
collnodehafen9->setPosition(core::vector3df(21000,-100,-25500));
collnodehafen9->setTriangleSelector(selector18);
selector18->drop();
scene::ISceneNodeAnimator* animhafen10 = smgr->createCollisionResponseAnimator(
selector18, camera, core::vector3df(10,20,10),
core::vector3df(0,0,0),
core::vector3df(0,60,0));
camera->addAnimator(animhafen10);
animhafen10->drop();
if (*zeiger < 2){
if (ahafennode9)
{
scene::ISceneNodeAnimator* anim =
smgr->createFlyStraightAnimator(core::vector3df(21000,-100,-25500),
core::vector3df(11000,-100,-25500), 2500, true);
ahafennode9->addAnimator(anim);
anim->drop();
}
if (collnodehafen9)
{
scene::ISceneNodeAnimator* anim1 =
smgr->createFlyStraightAnimator(core::vector3df(21000,-100,-25500),
core::vector3df(11000,-100,-25500), 2500, true);
collnodehafen9->addAnimator(anim1);
anim1->drop();
}
}
else {
if (ahafennode9)
{
scene::ISceneNodeAnimator* anim =
smgr->createFlyStraightAnimator(core::vector3df(21000,-100,-25500),
core::vector3df(18000,-100,-25500), 2500, true);
ahafennode9->addAnimator(anim);
anim->drop();
}
if (collnodehafen9)
{
scene::ISceneNodeAnimator* anim1 =
smgr->createFlyStraightAnimator(core::vector3df(21000,-100,-25500),
core::vector3df(18000,-100,-25500), 2500, true);
collnodehafen9->addAnimator(anim1);
anim1->drop();
}
}