public void Process(float delta) { _context.Position = new Vector2 { x = _context.Position.x, y = Mathf.Clamp(_context.Position.y + _jumpSpeed * delta, InitialPosition.y, InitialPosition.y + (_context.Size.y * 1.5f)) }; if (_context.Position.y == InitialPosition.y) { _context.playerState = new InvertedState(_context); } _jumpSpeed -= _gravity; _context.Update(); }
public void Process(float delta) { _context.Position = new Vector2 { x = _context.Position.x, y = Mathf.Clamp(_context.Position.y + (_fallingSpeed * delta), _context.GameScreen.Position.y, _context.GameScreen.Size.y - _context.Size.y) }; _fallingSpeed += _context.Gravity; if (_context.Position.y == _context.GameScreen.Size.y - _context.Size.y) { _fallingSpeed = 100f; } _context.Update(); }