Exemplo n.º 1
0
        public override void OnUpdate()
        {
            if (EInput.IsKey(OpenTK.Input.Key.W))
            {
                actor.position += (actor.forward - actor.position) * (float)ETime.DeltaTime * MovementSpeed * (EInput.IsKey(OpenTK.Input.Key.ShiftLeft) ? Run : 1);
            }
            if (EInput.IsKey(OpenTK.Input.Key.S))
            {
                actor.position += (actor.backward - actor.position) * (float)ETime.DeltaTime * MovementSpeed * (EInput.IsKey(OpenTK.Input.Key.ShiftLeft) ? Run : 1);
            }
            if (EInput.IsKey(OpenTK.Input.Key.A))
            {
                actor.position += (actor.leftward - actor.position) * (float)ETime.DeltaTime * MovementSpeed * (EInput.IsKey(OpenTK.Input.Key.ShiftLeft) ? Run : 1);
            }
            if (EInput.IsKey(OpenTK.Input.Key.D))
            {
                actor.position += (actor.rightward - actor.position) * (float)ETime.DeltaTime * MovementSpeed * (EInput.IsKey(OpenTK.Input.Key.ShiftLeft) ? Run : 1);
            }
            if (EInput.IsKey(OpenTK.Input.Key.Q))
            {
                actor.position += (actor.upward - actor.position) * (float)ETime.DeltaTime * MovementSpeed * (EInput.IsKey(OpenTK.Input.Key.ShiftLeft) ? Run : 1);
            }
            if (EInput.IsKey(OpenTK.Input.Key.E))
            {
                actor.position += (actor.downward - actor.position) * (float)ETime.DeltaTime * MovementSpeed * (EInput.IsKey(OpenTK.Input.Key.ShiftLeft) ? Run : 1);
            }
            if (EInput.IsKey(OpenTK.Input.Key.Up))
            {
                actor.rotate = Quaternion.Multiply(actor.rotate, Quaternion.FromEulerAngles(RotateSpeed * (float)ETime.DeltaTime, 0, 0));
            }
            if (EInput.IsKey(OpenTK.Input.Key.Down))
            {
                actor.rotate = Quaternion.Multiply(actor.rotate, Quaternion.FromEulerAngles(-RotateSpeed * (float)ETime.DeltaTime, 0, 0));
            }
            if (EInput.IsKey(OpenTK.Input.Key.Left))
            {
                actor.rotate = Quaternion.Multiply(actor.rotate, Quaternion.FromEulerAngles(0, RotateSpeed * (float)ETime.DeltaTime, 0));
            }
            if (EInput.IsKey(OpenTK.Input.Key.Right))
            {
                actor.rotate = Quaternion.Multiply(actor.rotate, Quaternion.FromEulerAngles(0, -RotateSpeed * (float)ETime.DeltaTime, 0));
            }

            base.OnUpdate();
        }