1) I mean no collisions and no gravity, like if the collision animator doesn't exist anymore.
2) No I haven't called drop()
I create the collision animator like that:
Code: Select all
scene::ISceneNodeAnimatorCollisionResponse* playerAnim;
if (selector)
{
playerAnim = smgr->createCollisionResponseAnimator(selector, playerNode,
core::vector3df(20, 40, 10),
core::vector3df(0, -10, 0),
core::vector3df(0, 18, 0));
playerNode->addAnimator(playerAnim);
}
And this is my render loop:
Code: Select all
while(device->run())
{
if(device->isWindowActive())
{
driver->beginScene(true, true, 0);
smgr->drawAll();
gui->drawAll();
// Change Gravity --------------------------------------
playerAnim->setGravity(core::vector3df(0, 10, 0)); //If this works, the playerNode should fly
//---------------------------------------------------------
time = (f32)device->getTimer()->getTime();
eventReceiver.updateNodePosition(time - lastTime);
eventReceiver.replaceCamera();
eventReceiver.pickSceneNode();
if(time - lastTime < MIN_FRAME_TIME)
{
device->sleep((u32)(MIN_FRAME_TIME - (time - lastTime)));
}
else
{
lastTime = time;
}
driver->endScene();
}
else
{
device->sleep(500);
}
}
Do you see something wrong in my code?