Exemple #1
0
        public void Update()
        {
            long currentTime = Root.Timer.Milliseconds;

            TimeStep         = (currentTime - LastTime) / 1000.0f;
            LastTime         = currentTime;
            TimeAccumulator += TimeStep;
            TimeAccumulator  = System.Math.Min(TimeAccumulator, FixedTimeStep * (FixedFPS / 15));

            Keyboard.Capture();
            Mouse.Capture();
            Root.RenderOneFrame();
            Labeler.Update();
            User.Update();

            while (TimeAccumulator >= FixedTimeStep)
            {
                TypedInput.Update();

                for (int i = 0; i < 4; i++)
                {
                    NewtonWorld.Update(FixedTimeStep / 4.0f);
                }

                HumanController.Update();
                ObjectManager.Update();
                TimeAccumulator -= FixedTimeStep;

                //// mjuzik status i ogarnięcie żeby przełączało na następną piosenkę z plejlisty po zakończeniu poprzedniej
            }
            WindowEventUtilities.MessagePump();
        }
Exemple #2
0
        /// <summary>
        /// This method set the reaction to each key stroke
        /// </summary>
        /// <param name="evt">Can be used to tune the reaction timings</param>
        /// <returns></returns>
        public bool ProcessInput(FrameEvent evt)
        {
            Vector3 displacements = Vector3.ZERO;
            Vector3 angles        = Vector3.ZERO;

            mKeyboard.Capture();
            mMouse.Capture();

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                playerController.Left = true;
            }
            else
            {
                playerController.Left = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                playerController.Right = true;
            }
            else
            {
                playerController.Right = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                playerController.Forward = true;
            }
            else
            {
                playerController.Forward = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                playerController.Backward = true;
            }
            else
            {
                playerController.Backward = false;
            }


            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Left))
            {
                angles.y = -mMouse.MouseState.X.rel;
            }

            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Right))
            {
                angles.y = mMouse.MouseState.X.rel;
            }


            playerController.Angles = angles;
            return(true);
        }
        /// <summary>
        /// This method set the reaction to each key stroke
        /// </summary>
        /// <param name="evt">Can be used to tune the reaction timings</param>
        /// <returns></returns>
        public bool ProcessInput(FrameEvent evt)
        {
            Vector3 displacements = Vector3.ZERO;
            Vector3 angles        = Vector3.ZERO;

            mKeyboard.Capture();
            mMouse.Capture();

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                controller.Left = true;
            }
            else
            {
                controller.Left = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                controller.Right = true;
            }
            else
            {
                controller.Right = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                controller.Forward = true;
            }
            else
            {
                controller.Forward = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                controller.Backward = true;
            }
            else
            {
                controller.Backward = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_LSHIFT))
            {
                controller.Accellerate = true;
            }
            else
            {
                controller.Accellerate = false;
            }

            angles.y          = -mMouse.MouseState.X.rel;
            controller.Angles = angles;
            return(true);
        }
Exemple #4
0
        protected virtual bool OnFrameRenderingQueued(FrameEvent evt)
        {
            mKeyboard.Capture();
            mMouse.Capture();

            Vector3 cameraMove = Vector3.ZERO;

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                cameraMove += mCamera.Direction;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                cameraMove -= mCamera.Direction;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                cameraMove -= mCamera.Right;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                cameraMove += mCamera.Right;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_Q))
            {
                cameraMove += mCamera.Up;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_E))
            {
                cameraMove -= mCamera.Up;
            }


            cameraMove.Normalise();
            cameraMove *= 150; // Natural speed is 150 units/sec.

            if (cameraMove != Vector3.ZERO)
            {
                mCamera.Move(cameraMove * evt.timeSinceLastFrame);
            }

            mCamera.Yaw(new Degree(-mMouse.MouseState.X.rel));
            mCamera.Pitch(new Degree(-mMouse.MouseState.Y.rel));

            mTimer -= evt.timeSinceLastFrame;
            return(mTimer > 0);
        }
Exemple #5
0
        /// <summary>
        /// This method set the reaction to each key stroke
        /// </summary>
        /// <param name="evt">Can be used to tune the reaction timings</param>
        /// <returns></returns>
        public bool ProcessInput(FrameEvent evt)
        {
            Vector3 displacements = Vector3.ZERO;
            Vector3 angles        = Vector3.ZERO;

            mKeyboard.Capture();
            mMouse.Capture();

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                displacements += new Vector3(-0.1f, 0, 0);
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                displacements += new Vector3(0.1f, 0, 0);
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                displacements += new Vector3(0, 0, -0.1f);
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                displacements += new Vector3(0, 0, 0.1f);
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_Q))
            {
                angles += .1f;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_E))
            {
                angles -= .1f;
            }

            //character.Move(displacements);
            //character.xRotate(angles);

            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Left))
            {
                angles.z = -mMouse.MouseState.X.rel;
            }
            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Right))
            {
                angles.x = -mMouse.MouseState.Y.rel;
            }
            //playerController.Rotate(angles);
            return(true);
        }
Exemple #6
0
        /// <summary>
        /// Frame listener that updates the game world/state
        /// </summary>
        /// <param name="evt">Data passed by the event handler that calls the function.</param>
        /// <returns></returns>
        bool FrameStarted(FrameEvent evt)
        {
            inputKeyboard.Capture();
            inputMouse.Capture();

            deltaTime  = evt.timeSinceLastFrame;
            totalTime += evt.timeSinceLastFrame;

            if (!Approx(cam.Position.x, position * 5))
            {
                if (cam.Position.x < position * 5)
                {
                    cam.Position += new Vector3(5f, 0, 0) * deltaTime;
                }
                if (cam.Position.x > position * 5)
                {
                    cam.Position -= new Vector3(5f, 0, 0) * deltaTime;
                }
            }

            return(running);
        }
Exemple #7
0
        protected virtual void HandleInput(FrameEvent evt)
        {
            // Move about 100 units per second,
            float moveScale = camSpeed * evt.timeSinceLastFrame;
            // Take about 10 seconds for full rotation
            Degree rotScale = rotateSpeed * evt.timeSinceLastFrame;

            Vector3 translateVector = Vector3.ZERO;


            // set the scaling of camera motion
            Degree scaleRotate = rotateSpeed * evt.timeSinceLastFrame;

            Vector3 camVelocity = Vector3.ZERO;

            inputKeyboard.Capture();

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_ESCAPE))
            {
                // stop rendering loop
                shutDown = true;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                translateVector.x = -moveScale;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                translateVector.x = moveScale;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                translateVector.z = -moveScale;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                translateVector.z = moveScale;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_LEFT))
            {
                camera.Yaw(scaleRotate);
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_RIGHT))
            {
                camera.Yaw(-scaleRotate);
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_UP))
            {
                camera.Pitch(scaleRotate);
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_DOWN))
            {
                camera.Pitch(-scaleRotate);
            }

            // subtract the time since last frame to delay specific key presses
            toggleDelay -= evt.timeSinceLastFrame;

            // toggle rendering mode
            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_R) && toggleDelay < 0)
            {
                if (camera.PolygonMode == PolygonMode.PM_POINTS)
                {
                    camera.PolygonMode = PolygonMode.PM_SOLID;
                }
                else if (camera.PolygonMode == PolygonMode.PM_SOLID)
                {
                    camera.PolygonMode = PolygonMode.PM_WIREFRAME;
                }
                else
                {
                    camera.PolygonMode = PolygonMode.PM_POINTS;
                }

                Console.WriteLine("Rendering mode changed to '{0}'.", camera.PolygonMode);

                toggleDelay = 1;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_T) && toggleDelay < 0)
            {
                // toggle the texture settings
                switch (filtering)
                {
                case TextureFilterOptions.TFO_BILINEAR:
                    filtering = TextureFilterOptions.TFO_TRILINEAR;
                    aniso     = 1;
                    break;

                case TextureFilterOptions.TFO_TRILINEAR:
                    filtering = TextureFilterOptions.TFO_ANISOTROPIC;
                    aniso     = 8;
                    break;

                case TextureFilterOptions.TFO_ANISOTROPIC:
                    filtering = TextureFilterOptions.TFO_BILINEAR;
                    aniso     = 1;
                    break;
                }

                Console.WriteLine("Texture Filtering changed to '{0}'.", filtering);

                // set the new default
                MaterialManager.Singleton.SetDefaultTextureFiltering(filtering);
                MaterialManager.Singleton.DefaultAnisotropy = aniso;

                toggleDelay = 1;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_SYSRQ))
            {
                string[] temp     = System.IO.Directory.GetFiles(Environment.CurrentDirectory, "screenshot*.jpg");
                string   fileName = string.Format("screenshot{0}.jpg", temp.Length + 1);

                TakeScreenshot(fileName);

                // show briefly on the screen
                mDebugText = string.Format("Wrote screenshot '{0}'.", fileName);

                // show for 2 seconds
                debugTextDelay = 2.0f;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_B))
            {
                sceneMgr.ShowBoundingBoxes = !sceneMgr.ShowBoundingBoxes;
            }

            if (inputKeyboard.IsKeyDown(MOIS.KeyCode.KC_F))
            {
                // hide all overlays, includes ones besides the debug overlay
                viewport.OverlaysEnabled = !viewport.OverlaysEnabled;
            }

            inputMouse.Capture();
            MOIS.MouseState_NativePtr mouseState = inputMouse.MouseState;

            if (!mouseState.ButtonDown(MOIS.MouseButtonID.MB_Left))
            {
                Degree cameraYaw   = -mouseState.X.rel * .13f;
                Degree cameraPitch = -mouseState.Y.rel * .13f;

                camera.Yaw(cameraYaw);
                camera.Pitch(cameraPitch);
            }
            else
            {
                translateVector.x += mouseState.X.rel * 0.13f;
            }


            // move the camera based on the accumulated movement vector
            camera.MoveRelative(translateVector);

            // update performance stats once per second
            if (statDelay < 0.0f && showDebugOverlay)
            {
                UpdateStats();
                statDelay = 1.0f;
            }
            else
            {
                statDelay -= evt.timeSinceLastFrame;
            }

            // turn off debug text when delay ends
            if (debugTextDelay < 0.0f)
            {
                debugTextDelay = 0.0f;
                mDebugText     = "";
            }
            else if (debugTextDelay > 0.0f)
            {
                debugTextDelay -= evt.timeSinceLastFrame;
            }
        }
Exemple #8
0
        /// <summary>
        /// This method set the reaction to each key stroke
        /// The ProcessInput method should not call the functions to move or rotate the player,
        /// it should just set the values of how much movement or rotation the player should do.
        /// </summary>
        /// <param name="evt">Can be used to tune the reaction timings</param>
        /// <returns></returns>
        public bool ProcessInput(FrameEvent evt)
        {
            Vector3 displacements = Vector3.ZERO;
            Vector3 angles        = Vector3.ZERO;

            mKeyboard.Capture();
            mMouse.Capture();

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                playerController.Left = true;
            }
            else
            {
                playerController.Left = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                playerController.Right = true;
            }
            else
            {
                playerController.Right = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                playerController.Forward = true;
            }
            else
            {
                playerController.Forward = false;
            }


            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                playerController.Backward = true;
            }
            else
            {
                playerController.Backward = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_SPACE))
            {
                playerController.Shoot = true;
            }
            else
            {
                playerController.Shoot = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_LSHIFT))
            {
                playerController.Accellerate = true;
            }
            else
            {
                playerController.Accellerate = false;
            }

            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Left))
            {
                angles.y /*z*/ = -mMouse.MouseState.X.rel;   //change angles.z into angles.y
            }
            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Right))
            {
                angles.y /*x*/ = -mMouse.MouseState.Y.rel; //change angles.z into angles.y
            }
            playerController.Angles = angles;              //the pass the angle vector to the PlayerController as playerController.Angles = angles after the if statements for the mouse
            return(true);
        }
Exemple #9
0
        /// <summary>
        /// This method set the reaction to each key stroke
        /// </summary>
        /// <param name="evt">Can be used to tune the reaction timings</param>
        /// <returns></returns>
        public bool ProcessInput(FrameEvent evt)
        {
            //Vector3 displacements = Vector3.ZERO;
            Vector3 angles = Vector3.ZERO;

            mKeyboard.Capture();
            mMouse.Capture();

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                playerController.Left = true;
            }
            else
            {
                playerController.Left = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                playerController.Right = true;
            }
            else
            {
                playerController.Right = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                playerController.Forward = true;
            }
            else
            {
                playerController.Forward = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                playerController.Backward = true;
            }
            else
            {
                playerController.Backward = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_SPACE))
            {
                playerController.Up = true;
            }
            else
            {
                playerController.Up = false;
            }
            //Console.WriteLine(mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A));
            // player.Move(displacements);

            //  if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Left))
            //  {
            angles += -mMouse.MouseState.X.rel;
            playerController.Character.Model.GameNode.Yaw(angles.y * 0.005f);
            //Console.WriteLine(angles.y);

            //  }
            // if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Right))
            // {
            //    angles.x = -mMouse.MouseState.Y.rel;
            //}
            //player.Rotate(angles/10);
            //playerController.Update(evt);
            return(true);
        }
Exemple #10
0
        public bool ProcessInput(FrameEvent ect)
        {
            Vector3 displacements = Vector3.ZERO;
            Vector3 angles        = Vector3.ZERO;

            mKeyboard.Capture();
            mMouse.Capture();

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_A))
            {
                playerController.Left = true;
                displacements        += new Vector3(-0.1f, 0, 0);
            }
            else
            {
                playerController.Left = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_D))
            {
                playerController.Right = true;
                displacements         += new Vector3(0.1f, 0, 0);
            }
            else
            {
                playerController.Right = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_W))
            {
                playerController.Forward = true;
                displacements           += new Vector3(0, 0, 0.1f);
            }
            else
            {
                playerController.Forward = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_S))
            {
                playerController.Backward = true;
                displacements            += new Vector3(0, 0, -0.1f);
            }
            else
            {
                playerController.Backward = false;
            }
            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_SPACE))
            {
                playerController.Shoot = true;
            }
            else
            {
                playerController.Shoot = false;
            }

            if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_LSHIFT))
            {
                playerController.Accellerate = true;
            }
            else
            {
                playerController.Accellerate = false;
            }
            //if (mKeyboard.IsKeyDown(MOIS.KeyCode.KC_E)) // Swap guns here
            //{
            //    playerController.
            //}

            //player.Move(displacements); //UNCOMMENT THIS!!


            //mMouse.MouseMoved .MouseMoved(MOIS.MouseButtonID.MB_Left)
            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Left))
            {
                angles.y = mMouse.MouseState.X.rel;
            }
            if (mMouse.MouseState.ButtonDown(MOIS.MouseButtonID.MB_Right))
            {
                angles.x = mMouse.MouseState.Y.rel;
            }
            playerController.Angles = angles;

            //playerController.Rotate(angles); UNCOMMENT THIS!!
            return(true);
        }
Exemple #11
0
        public void Update()
        {
            Mysz.height = (int)Root.AutoCreatedWindow.Height;
            Mysz.width  = (int)Root.AutoCreatedWindow.Width;
            long currentTime = Root.Timer.Milliseconds;

            TimeStep         = (currentTime - LastTime) / 1000.0f;
            LastTime         = currentTime;
            TimeAccumulator += TimeStep;
            TimeAccumulator  = System.Math.Min(TimeAccumulator, FixedTimeStep * (FixedFPS / 15));

            Keyboard.Capture();
            Mouse.Capture();
            Root.RenderOneFrame();
            Labeler.Update();
            IngameConsole.Update();

            SoundManager.CheckPlaylist();

            while (TimeAccumulator >= FixedTimeStep)
            {
                TypedInput.Update();

                if (!Pause)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        NewtonWorld.Update(FixedTimeStep / 4.0f);
                    }

                    ObjectManager.Update();
                    GameCamera.Update();
                }

                HumanController.Update();
                TimeAccumulator -= FixedTimeStep;
            }

            WindowEventUtilities.MessagePump();

            if (CurrentLevel.LoadNewMap)
            {
                Engine.Singleton.IngameConsole.Print("Ladowanie mapy: " + CurrentLevel.NewMapName);
                HumanController.HUD.ToggleLoadScreen();
                Root.RenderOneFrame();
                HumanController.Character.Contact = null;
                CurrentLevel.DeleteLevel();
                CurrentLevel.LoadLevel(CurrentLevel.NewMapName, CurrentLevel.NewMapNav, false);
                CurrentLevel.LoadNewMap = false;
                CurrentLevel.NewMapName = "";
                CurrentLevel.NewMapNav  = "";

                if (CurrentLevel.DeleteWithAutoSave)
                {
                    Load(null);
                }
                else
                {
                    CurrentLevel.DeleteWithAutoSave = true;
                }

                HumanController.HUD.ToggleLoadScreen();
            }
        }