示例#1
0
        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();
        }
示例#2
0
        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();
        }