Ejemplo n.º 1
0
        public override void Update(IFrameUpdateData frameData)
        {
            ypos = ypos * 0.9f + 0.1f * ypostarget;
            if (Math.Abs(ypos - ypostarget) < 0.0005)
            {
                ypos = ypostarget;
            }

            UpdateView();
            base.Update(frameData);
        }
Ejemplo n.º 2
0
 public override void Update(IFrameUpdateData frameData)
 {
     if (UpdateInvisibleComponents)
     {
         base.Update(frameData);
     }
     else
     {
         (CurrentComponent as IUpdateable)?.Update(frameData);
     }
 }
Ejemplo n.º 3
0
 public void Update(IFrameUpdateData frameData)
 {
 }
Ejemplo n.º 4
0
 public virtual void Update(IFrameUpdateData frameData)
 {
     Components.Update(frameData);
 }
Ejemplo n.º 5
0
        public void Update(IFrameUpdateData frameData)
        {
            double time = frameData.Time;

            if (time < 0.0001)
            {
                time = 0.0001;
            }

            // mouse look
            if
            (
                ViewEnable &&
                (
                    (LookMode == LookModeEnum.Always) ||
                    (LookMode == LookModeEnum.Mouse1 && Mouse[MouseButton.Left]) ||
                    (LookMode == LookModeEnum.Mouse2 && Mouse[MouseButton.Right])
                )
            )
            {
                int mouseX = Mouse.X, mouseY = Mouse.Y;

                if (prevMouseX <= -10000 || !previousViewMouseButton)
                {
                    prevMouseX = mouseX;
                }
                if (prevMouseY <= -10000 || !previousViewMouseButton)
                {
                    prevMouseY = mouseY;
                }

                //int deltaX = (this.Width / 2) - mouseX;
                //int deltaY = (this.Height / 2) - mouseY;
                int deltaX = mouseX - prevMouseX;
                int deltaY = mouseY - prevMouseY;

                IsMouseMoving = (IsMouseMoving || deltaX != 0 || deltaY != 0);

                this.AngleLeftRight += (float)deltaX * -0.01f;
                this.AngleUpDown    += (float)deltaY * -0.01f;

                prevMouseX = mouseX;
                prevMouseY = mouseY;
            }
            if (LookMode == LookModeEnum.Mouse1)
            {
                previousViewMouseButton = Mouse[MouseButton.Left];
            }
            if (LookMode == LookModeEnum.Mouse2)
            {
                previousViewMouseButton = Mouse[MouseButton.Right];
            }

            // keyboard move
            float speed = (float)(this.MovementSpeed * time);

            float speedmul = this.Keyboard[Key.ShiftLeft] ? 1.0f : 0.1f;

            speed *= speedmul;

            var pos = this.Position;

            if (this.Keyboard[Key.W])
            {
                pos.X        += (float)(Math.Cos(this.AngleLeftRight) * speed);
                pos.Z        += (float)(Math.Sin(this.AngleLeftRight) * speed);
                this.IsMoving = true;
            }
            if (this.Keyboard[Key.S])
            {
                pos.X        -= (float)(Math.Cos(this.AngleLeftRight) * speed);
                pos.Z        -= (float)(Math.Sin(this.AngleLeftRight) * speed);
                this.IsMoving = true;
            }
            if (this.Keyboard[Key.A])
            {
                pos.X        += (float)(Math.Cos(this.AngleLeftRight + Math.PI * 0.5) * speed);
                pos.Z        += (float)(Math.Sin(this.AngleLeftRight + Math.PI * 0.5) * speed);
                this.IsMoving = true;
            }
            if (this.Keyboard[Key.D])
            {
                pos.X        += (float)(Math.Cos(this.AngleLeftRight + Math.PI * 1.5) * speed);
                pos.Z        += (float)(Math.Sin(this.AngleLeftRight + Math.PI * 1.5) * speed);
                this.IsMoving = true;
            }

            if (this.Keyboard[Key.F])
            {
                this.EyeHeight += this.MovementSpeed * speedmul * (float)time;
                this.IsMoving   = true;
            }
            if (this.Keyboard[Key.V])
            {
                this.EyeHeight -= this.MovementSpeed * speedmul * (float)time;
                this.IsMoving   = true;
            }

            this.Position = pos;
        }