Beispiel #1
0
 void Awake()
 {
     character_movement = GetComponent <PlayerMoveAction>();
     look_Position      = transform.GetChild(0);
     player_movement    = GetComponentInChildren <MovementSound>();
     player_statistics  = GetComponent <PlayerStatistics>();
 }
Beispiel #2
0
 public void Dispose()
 {
     MovementSound.dispose();
 }
Beispiel #3
0
        /// <summary>
        /// Actualizar el estado interno de la cámara en cada frame
        /// </summary>
        public void updateCamera()
        {
            if (!Enable)
            {
                return;
            }

            float       elapsedTime = GuiController.Instance.ElapsedTime;
            TgcD3dInput input       = GuiController.Instance.D3dInput;

            if (input.keyPressed(Key.L))
            {
                LockMouse = !LockMouse;
            }

            if (!LockMouse)
            {
                return;
            }

            // posicion
            //
            bool    moved    = false;
            Vector3 movement = new Vector3(0.0f, 0.0f, 0.0f);

            if (input.keyDown(Key.W))
            {
                movement += forward * (MovementSpeed * elapsedTime * ForwardFactor);
                moved     = true;
            }

            if (input.keyDown(Key.A))
            {
                movement += xAxis * (-MovementSpeed * elapsedTime);
                moved     = true;
            }

            if (input.keyDown(Key.S))
            {
                movement += forward * (-MovementSpeed * elapsedTime);
                moved     = true;
            }

            if (input.keyDown(Key.D))
            {
                movement += xAxis * (MovementSpeed * elapsedTime);
                moved     = true;
            }

            if (moved)
            {
                move(movement);

                MovementSound.play();
            }

            // rotacion
            //

            // invertidos: moverse en x cambia el heading (rotacion sobre y) y viceversa.
            float rotY = input.XposRelative * rotationSpeed;
            float rotX = input.YposRelative * rotationSpeed;

            if (rotY != 0.0f || rotX != 0.0f)
            {
                look(rotX, rotY);
            }

            if (lockMouse)
            {
                Cursor.Position = windowCenter;
            }
        }