Пример #1
0
        private bool FrameStarted(FrameEvent evt)
        {
            // Check camera height
            RaySceneQuery       raySceneQuery = sceneMgr.CreateRayQuery(new Ray(camera.Position + new Vector3(0, 1000000, 0), Vector3.NEGATIVE_UNIT_Y));
            RaySceneQueryResult qryResult     = raySceneQuery.Execute();

            RaySceneQueryResult.Iterator it = qryResult.Begin();
            if (it != qryResult.End() && it.Value.worldFragment != null)
            {
                if (camera.DerivedPosition.y < it.Value.worldFragment.singleIntersection.y + 30)
                {
                    camera.SetPosition(camera.Position.x,
                                       it.Value.worldFragment.singleIntersection.y + 30,
                                       camera.Position.z);
                }

                it.MoveNext();
            }

            //SkyX::AtmosphereManager::Options SkyXOptions = mSkyX->getAtmosphereManager()->getOptions();

            // Time
            if (!showInformation)
            {
                manager.TimeMultiplier = 0.1f;
            }
            else
            {
                manager.TimeMultiplier = 0.0f;
            }

            textArea.Caption = GetConfigString();
            manager.Update(evt.timeSinceLastFrame);

            return(true);
        }
Пример #2
0
        private bool Root_FrameStarted(FrameEvent evt)
        {
            //SceneManager sm = OgreWindow.Instance.mSceneMgr;
            //Root root = OgreWindow.Instance.mRoot;
            //Camera cam = OgreWindow.Instance.mCamera;

            //// Check camera height
            //RaySceneQuery raySceneQuery = sm.CreateRayQuery(new Ray(cam.Position + new Mogre.Vector3(0, 1000000, 0), Mogre.Vector3.NEGATIVE_UNIT_Y));
            //RaySceneQueryResult qryResult = raySceneQuery.Execute();

            //RaySceneQueryResult.Iterator it = qryResult.Begin();
            //if (it != qryResult.End() && it.Value.worldFragment != null)
            //{
            //    if (cam.DerivedPosition.y < it.Value.worldFragment.singleIntersection.y + 30)
            //    {
            //        cam.SetPosition(cam.Position.x,
            //                            it.Value.worldFragment.singleIntersection.y + 30,
            //                            cam.Position.z);
            //    }

            //    it.MoveNext();
            //}

            skyManager.TimeMultiplier = 1f;
            skyManager.Update(evt.timeSinceLastFrame);

            try
            {
                ClientPluginManager.FrameStartedHooks(interpolation);
            }
            catch
            {
                log("[ main() ] FrameStarted exception while doing plugins' hooks");
            }
            return(true);
        }