Witam! Napisałem sobie taki podstawowy skok, chciałbym go wydłużyć w taki sposób aby nie wpływało to na wysokość skoku. Jak mogę coś takiego uzyskać?
Player::Player()
{
velX = 0;
velY = 0;
run = 0;
activeButton = true;
keyA = keyD = false;
keyState = SDL_GetKeyboardState(NULL);
}
void Player::LoadContent(SDL_Renderer *renderer)
{
Entity::LoadContent("Files/config/Player.cfg", renderer);
moveSpeed = 0.5f;
Gravity = 0.03f;
jumpSpeed = 3.2f;
pDirection = Direction::Right;
}
void Player::Draw(SDL_Renderer *renderer)
{
Entity::DrawR(renderer);
}
void Player::Update(InputManager input)
{
Entity::Update(input);
posX += velX;
posY += velY;
if (activeGravity == true)
{
velY += Gravity;
if (velY > jumpSpeed)
{
velY = jumpSpeed;
}
}
else
{
velY = 0;
}
}
void Player::UpdateEvent(SDL_Event &event)
{
if (event.type == SDL_KEYDOWN)
{
switch (event.key.keysym.sym)
{
case SDLK_SPACE:
if (activeButton)
{
if (event.key.repeat == 0)
{
if (!activeGravity)
{
jumpSpeed *= 0.986;
velY = -jumpSpeed;
activeGravity = true;
}
}
}
break;
}
}
if (event.type == SDL_KEYUP)
{
switch (event.key.keysym.sym)
{
case SDLK_SPACE:
if (activeButton)
{
if (event.key.repeat == 0)
{
if (activeGravity)
{
if (velY < -1)
{
velY = -1;
}
}
}
}
break;
}
}
}