I am doing animated frames--similar to a PowerPoint presentation. I load the textures into an array. The problem is that I need to make each frame stay on the screen long enough for the person to read what each screen says. There are only 15 screens for each unit. I would like each screen to stay for 1-2 seconds.
I have looked at splash screens, but this would not allow the animation effect to allow one to see the sun object animate slowly moving across the screen. I have looked at ->setAnimationSpeed(), but no matter what I change it to--even "1," it has no effect. The screens still go by so quickly you don't even see them
I have looked at a post where if one's project is not framerate dependent one can change the timer. I am not certain how one distinguishes a project as "framerate dependent or not." However, I have not found a way to do this, and am not sure this is the direction to go to change the animations so that they are slow.
I have used both a billboard to show my animations and an AnimatedMeshSceneNode. Below is the code used for the billboard and the AnimatedMeshSceneNode. Any help in the right direction would be appreciated. Thank you.
This is code with the billboard looks better with the 2d
Code: Select all
scene::ISceneNodeAnimator* ScreenAnimator = m_pSceneManager->createTextureAnimator(adventureOneTexture, 1, false);
m_pIrrNode = m_pSceneManager->addBillboardSceneNode(NULL, irr::core::dimension2d<f32>(500, 500));
// Set material properties
m_pIrrNode->setMaterialFlag(irr::video::EMF_LIGHTING, false);
m_pIrrNode->setMaterialType(irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL );
m_pIrrNode->addAnimator(ScreenAnimator);
ScreenAnimator->drop();
This is the code with the AnimatedMeshSceneNode
Code: Select all
scene::ISceneNodeAnimator* ScreenAnimator = m_pSceneManager->createTextureAnimator(adventureOneTexture, 1, false);
//"../../LevelMesh/Godsirr050AllGoldLighting002.b3d");
cubeMeshScreenTwo = m_pSceneManager->addAnimatedMeshSceneNode(m_pSceneManager->getMesh("../../HealMesh/3DWorldHealMesh002.b3d"));
cubeMeshScreenTwo->setPosition(core::vector3df(100,70,2));
// Set material properties
// // Set material properties
cubeMeshScreenTwo->setMaterialFlag(irr::video::EMF_LIGHTING, false);
cubeMeshScreenTwo->setMaterialType(irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL );
cubeMeshScreenTwo->setPosition(core::vector3df(100,70,2));
//int speed = 1;
//cubeMeshScreenTwo->setFrameLoop(1,15);
//cubeMeshScreenTwo->setAnimationSpeed(speed/3000);
cubeMeshScreenTwo->setAnimationSpeed(1);
cubeMeshScreenTwo->addAnimator(ScreenAnimator);
ScreenAnimator->drop();