//Vector2 _lastMoveVelocity; protected override void OnBeforeUpdaters(object sender, EventArgs e) { // player var moveVelocity = (Vector2d)_playerMoveInput.Value.Xy; _playerMoveInput.Update(); _player.Velocity += _player.OnGround ? (moveVelocity.X * .02D, _playerMoveInput.Value.Y > 0F ? .17D : 0D) : (moveVelocity.X * .014D, 0D);//(Vector2d)(moveVelocity - _lastMoveVelocity) * .1D; _player.Update(_chunk.GetCubes(_player.GetBoxBound().Inflated(_player.Velocity))); //_player.Velocity -= (0D, _player.GravityScale / 600D); //_player.Position += _player.Velocity; //_lastMoveVelocity = moveVelocity; // camera _viewInput.Update(); _scale += _viewInput.Value.Z * .01F; _scale = Math.Max(Math.Min(_scale, 5F), 1F); if (KeyboardState.IsKeyDown(Keys.GraveAccent)) { CenterPlayer(); } else { _viewCenter += _viewInput.Value.Xy / _scale * 1.5F; } base.OnBeforeUpdaters(sender, e); }
protected override void OnBeforeUpdaters(object sender, EventArgs e) { _eyeInput.Update(); _moveInput.Update(); _eye.Rotation += _eyeInput.Value.Xy; var tmp = Matrix2.CreateRotation(MathHelper.DegreesToRadians(_eye.Rotation.X)) * new Vector2(_moveInput.Value.X, -_moveInput.Value.Z); _playerObject.Velocity = new Vector3d(tmp.X, Math.Min(5D, _playerObject.Velocity.Y + _moveInput.BaseInput.Value.Y * .25), -tmp.Y); PlayerMovement(); Title = _playerObject.Velocity.ToString(); base.OnBeforeUpdaters(sender, e); }