private bool mouseMoved(MouseEvent arg)
        {
            float RotateScale_CameraPitch = .001f;//mouse sensitivity
            float RotateScale_PlayerTurn = .001f;//mouse sensitivity
            MouseState_NativePtr s = arg.state;
            if (arg.state.buttons == 2)
            {
                //chat("____________________________________________________________");
                nodes["orbit0"].Pitch(s.Y.rel * RotateScale_CameraPitch);
                if (!player_freeze && !textBarUsage && !consoleBarUsage)
                    if (s.X.rel != 0f)
                    {
                        //nodes["drone"].Yaw(-s.X.rel * RotateScale_PlayerTurn);
                        //setOrient(nodes["drone"]._getDerivedOrientation());
                        setOrient(control.Actor.GlobalOrientationQuaternion * ModifyAngleAroundAxis(new Degree(-s.X.rel * RotateScale_PlayerTurn), new Mogre.Vector3(0, 1, 0)));

                        //Mogre.Quaternion orient1 = control.Actor.GlobalOrientationQuaternion;
                        //Mogre.Vector3 rkAxis = new Mogre.Vector3();
                        //Degree rfAngle = new Degree();
                        //orient1.ToRotationMatrix().ToAxisAngle(out rkAxis, out rfAngle);
                        //orient2 = new Quaternion(new Radian(new Degree(rfAngle.ValueDegrees + (-s.X.rel * RotateScale_PlayerTurn))), new Mogre.Vector3(0, 1, 0));
                        ////control.Actor.GlobalOrientationQuaternion = orient2;
                        ////setOrient(orient2);
                        //spin(rfAngle.ValueDegrees + (-s.X.rel * RotateScale_PlayerTurn));
                    }
                updateCam();
            }

            float mouseZ = (float)OgreWindow.g_m.MouseState.Z.rel * .1f;
            //chat(mouseZ.ToString());
            if (mouseZ > 0)
            {
                middleMouseState = middleMouseStates.scrollup;
                middlemousetimer.reset();
                middlemousetimer.start();
            }
            else if (mouseZ < 0)
            {
                middleMouseState = middleMouseStates.scrolldown;
                middlemousetimer.reset();
                middlemousetimer.start();
            }

            return true;
        }
Beispiel #2
0
        private void controlThread()
        {
            //float RotateScale_PlayerTurn = .005f;//mouse sensitivity
            while (ready)
            {
                if (!consoleBarUsage)
                {
                    try
                    {
                        if (middlemousetimer.elapsed)
                        {
                            middleMouseState = middleMouseStates.idle;
                        }
                        if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_W))
                        {
                            if (MoveScale_Camera_forwardback > -speedcap_forwardback)
                            {
                                MoveScale_Camera_forwardback -= incr_forwardback;
                            }
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_S))
                        {
                            if (MoveScale_Camera_forwardback < speedcap_forwardback)
                            {
                                MoveScale_Camera_forwardback += incr_forwardback;
                            }
                        }
                        else if (MoveScale_Camera_forwardback != 0f)
                        {
                            if (MoveScale_Camera_forwardback > 0f)
                            {
                                MoveScale_Camera_forwardback -= incr_forwardback;
                            }
                            else
                            {
                                MoveScale_Camera_forwardback += incr_forwardback;
                            }
                            if (MoveScale_Camera_forwardback < brakes_forwardback && MoveScale_Camera_forwardback > -brakes_forwardback)
                            {
                                MoveScale_Camera_forwardback = 0f;
                            }
                        }
                        else
                        {
                            MoveScale_Camera_forwardback = 0f;
                        }
                        #region strafe
                        if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_Q))
                        {
                            if (MoveScale_Camera_leftright > -speedcap_leftright)
                            {
                                MoveScale_Camera_leftright -= incr_leftright;
                            }
                            //nodes["drone"].Yaw(-1f * RotateScale_PlayerTurn);
                            //setOrient(nodes["drone"]._getDerivedOrientation());
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_E))
                        {
                            if (MoveScale_Camera_leftright < speedcap_leftright)
                            {
                                MoveScale_Camera_leftright += incr_leftright;
                            }
                            //nodes["drone"].Yaw(1f * RotateScale_PlayerTurn);
                            //setOrient(nodes["drone"]._getDerivedOrientation());
                        }
                        else if (MoveScale_Camera_leftright != 0f)
                        {
                            if (MoveScale_Camera_leftright > 0f)
                            {
                                MoveScale_Camera_leftright -= incr_leftright;
                            }
                            else
                            {
                                MoveScale_Camera_leftright += incr_leftright;
                            }
                            if (MoveScale_Camera_leftright < brakes_leftright && MoveScale_Camera_leftright > -brakes_leftright)
                            {
                                MoveScale_Camera_leftright = 0f;
                            }
                        }
                        else
                        {
                            MoveScale_Camera_leftright = 0f;
                        }
                        #endregion

                        #region Turn Left / Right
                        if (!OgreWindow.g_kb.IsKeyDown(KeyCode.KC_A) && !OgreWindow.g_kb.IsKeyDown(KeyCode.KC_D))
                        {
                            turning_left  = false;
                            turning_right = false;
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(KeyCode.KC_A) && OgreWindow.g_kb.IsKeyDown(KeyCode.KC_D))
                        {
                            turning_left  = false;
                            turning_right = false;
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(KeyCode.KC_A))
                        {
                            turning_left  = true;
                            turning_right = false;
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(KeyCode.KC_D))
                        {
                            turning_left  = false;
                            turning_right = true;
                        }
                        #endregion

                        if (middleMouseState == middleMouseStates.scrolldown)
                        {
                            if (MoveScale_Camera_updown > -speedcap_updown)
                            {
                                MoveScale_Camera_updown -= incr_updown;
                            }
                        }
                        else if (middleMouseState == middleMouseStates.scrollup)
                        {
                            if (MoveScale_Camera_updown < speedcap_updown)
                            {
                                MoveScale_Camera_updown += incr_updown;
                            }
                        }
                        else if (MoveScale_Camera_updown != 0f)
                        {
                            if (MoveScale_Camera_updown > 0f)
                            {
                                MoveScale_Camera_updown -= incr_updown;
                            }
                            else
                            {
                                MoveScale_Camera_updown += incr_updown;
                            }
                            if (MoveScale_Camera_updown < brakes_updown && MoveScale_Camera_updown > -brakes_updown)
                            {
                                MoveScale_Camera_updown = 0f;
                            }
                        }
                        else
                        {
                            MoveScale_Camera_updown = 0f;
                        }
                        //TranslateVector_Camera.z -= MoveScale_Camera_forwardback;
                        //TranslateVector_Camera.x -= MoveScale_Camera_leftright;
                        //TranslateVector_Camera.y += MoveScale_Camera_updown;

                        if (MoveScale_Camera_updown != 0f)
                        {
                            //control.Actor.AddForce(new Mogre.Vector3(0f, MoveScale_Camera_updown, 0f));
                            //chat(MoveScale_Camera_updown.ToString());

                            //this.camDistance += MoveScale_Camera_updown;
                            //resetCam();
                        }



                        //control.Actor.AddForce(loc);



                        //actors["drone"].actor.AddLocalTorque(new Mogre.Vector3(0f, 1000f, 0f));
                        //actors["drone"].actor.AddLocalForce(loc);

                        // actors["drone"].actor.LinearVelocity = loc; //kinda works
                        //actors["drone"].actor.GlobalOrientation..Orientation.ToRotationMatrix();
                        // if (nodes["drone"].Orientation.Roll.ValueDegrees > 0)
                        //     actors["drone"].actor.AddLocalTorque(new Mogre.Vector3(0f, 1000f, 0f));
                    }
                    catch (Exception ex) { log(ex.ToString()); }
                }

                Thread.Sleep(100);
            }
        }
        private void controlThread()
        {
            //float RotateScale_PlayerTurn = .005f;//mouse sensitivity
            while (ready)
            {
                if (!consoleBarUsage)
                    try
                    {
                        if (middlemousetimer.elapsed)
                        {
                            middleMouseState = middleMouseStates.idle;
                        }
                        if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_W))
                        {

                            if (MoveScale_Camera_forwardback > -speedcap_forwardback)
                                MoveScale_Camera_forwardback -= incr_forwardback;
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_S))
                        {
                            if (MoveScale_Camera_forwardback < speedcap_forwardback)
                                MoveScale_Camera_forwardback += incr_forwardback;
                        }
                        else if (MoveScale_Camera_forwardback != 0f)
                        {
                            if (MoveScale_Camera_forwardback > 0f)
                                MoveScale_Camera_forwardback -= incr_forwardback;
                            else
                                MoveScale_Camera_forwardback += incr_forwardback;
                            if (MoveScale_Camera_forwardback < brakes_forwardback && MoveScale_Camera_forwardback > -brakes_forwardback)
                                MoveScale_Camera_forwardback = 0f;
                        }
                        else
                        {
                            MoveScale_Camera_forwardback = 0f;
                        }
                        #region strafe
                        if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_Q))
                        {

                            if (MoveScale_Camera_leftright > -speedcap_leftright)
                                MoveScale_Camera_leftright -= incr_leftright;
                            //nodes["drone"].Yaw(-1f * RotateScale_PlayerTurn);
                            //setOrient(nodes["drone"]._getDerivedOrientation());
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(MOIS.KeyCode.KC_E))
                        {
                            if (MoveScale_Camera_leftright < speedcap_leftright)
                                MoveScale_Camera_leftright += incr_leftright;
                            //nodes["drone"].Yaw(1f * RotateScale_PlayerTurn);
                            //setOrient(nodes["drone"]._getDerivedOrientation());
                        }
                        else if (MoveScale_Camera_leftright != 0f)
                        {
                            if (MoveScale_Camera_leftright > 0f)
                                MoveScale_Camera_leftright -= incr_leftright;
                            else
                                MoveScale_Camera_leftright += incr_leftright;
                            if (MoveScale_Camera_leftright < brakes_leftright && MoveScale_Camera_leftright > -brakes_leftright)
                                MoveScale_Camera_leftright = 0f;
                        }
                        else
                        {
                            MoveScale_Camera_leftright = 0f;
                        }
                        #endregion

                        #region Turn Left / Right
                        if (!OgreWindow.g_kb.IsKeyDown(KeyCode.KC_A) && !OgreWindow.g_kb.IsKeyDown(KeyCode.KC_D))
                        {
                            turning_left = false;
                            turning_right = false;
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(KeyCode.KC_A) && OgreWindow.g_kb.IsKeyDown(KeyCode.KC_D))
                        {
                            turning_left = false;
                            turning_right = false;

                        }
                        else if (OgreWindow.g_kb.IsKeyDown(KeyCode.KC_A))
                        {
                            turning_left = true;
                            turning_right = false;
                        }
                        else if (OgreWindow.g_kb.IsKeyDown(KeyCode.KC_D))
                        {
                            turning_left = false;
                            turning_right = true;
                        }
                        #endregion

                        if (middleMouseState == middleMouseStates.scrolldown)
                        {
                            if (MoveScale_Camera_updown > -speedcap_updown)
                                MoveScale_Camera_updown -= incr_updown;
                        }
                        else if (middleMouseState == middleMouseStates.scrollup)
                        {
                            if (MoveScale_Camera_updown < speedcap_updown)
                                MoveScale_Camera_updown += incr_updown;
                        }
                        else if (MoveScale_Camera_updown != 0f)
                        {
                            if (MoveScale_Camera_updown > 0f)
                                MoveScale_Camera_updown -= incr_updown;
                            else
                                MoveScale_Camera_updown += incr_updown;
                            if (MoveScale_Camera_updown < brakes_updown && MoveScale_Camera_updown > -brakes_updown)
                                MoveScale_Camera_updown = 0f;
                        }
                        else
                        {
                            MoveScale_Camera_updown = 0f;
                        }
                        //TranslateVector_Camera.z -= MoveScale_Camera_forwardback;
                        //TranslateVector_Camera.x -= MoveScale_Camera_leftright;
                        //TranslateVector_Camera.y += MoveScale_Camera_updown;

                        if (MoveScale_Camera_updown != 0f)
                        {
                            //control.Actor.AddForce(new Mogre.Vector3(0f, MoveScale_Camera_updown, 0f));
                            //chat(MoveScale_Camera_updown.ToString());

                            //this.camDistance += MoveScale_Camera_updown;
                            //resetCam();
                        }

                        //control.Actor.AddForce(loc);

                        //actors["drone"].actor.AddLocalTorque(new Mogre.Vector3(0f, 1000f, 0f));
                        //actors["drone"].actor.AddLocalForce(loc);

                        // actors["drone"].actor.LinearVelocity = loc; //kinda works
                        //actors["drone"].actor.GlobalOrientation..Orientation.ToRotationMatrix();
                        // if (nodes["drone"].Orientation.Roll.ValueDegrees > 0)
                        //     actors["drone"].actor.AddLocalTorque(new Mogre.Vector3(0f, 1000f, 0f));

                    }
                    catch (Exception ex) { log(ex.ToString()); }

                Thread.Sleep(100);

            }
        }