private void updateJumping(float a_deltaTime)
{
if (KeyboardHandler.keyClicked(GameState.getRollKey()) && Game.getInstance().getProgress().hasEquipment("hookshot"))
{
Hookshot t_hs = new Hookshot(m_position.getGlobalCartesian(), null, 0.100f);
if (m_facingRight)
{
t_hs.setDirection(new Vector2(100, -100));
}
else
{
t_hs.setDirection(new Vector2(-100, -100));
}
Game.getInstance().getState().addObject(t_hs);
}
if (!KeyboardHandler.isKeyPressed(GameState.getLeftKey()) && !KeyboardHandler.isKeyPressed(GameState.getRightKey()))
{
if (m_speed.X > 0)
{
m_speed.X = Math.Max(m_speed.X - (AIRDEACCELERATION * a_deltaTime), 0);
}
else if (m_speed.X < 0)
{
m_speed.X = Math.Min(m_speed.X + (AIRDEACCELERATION * a_deltaTime), 0);
}
}
else if (KeyboardHandler.isKeyPressed(GameState.getLeftKey()))
{
if (m_speed.X < -m_playerCurrentSpeed)
{
m_speed.X += AIRDEACCELERATION * a_deltaTime;
}
else
{
m_speed.X = Math.Max(-m_playerCurrentSpeed, m_speed.X - AIRDEACCELERATION * a_deltaTime);
}
}
else if (KeyboardHandler.isKeyPressed(GameState.getRightKey()))
{
if (m_speed.X > m_playerCurrentSpeed)
{
m_speed.X -= AIRDEACCELERATION * a_deltaTime;
}
else
{
m_speed.X = Math.Min(m_playerCurrentSpeed, m_speed.X + AIRDEACCELERATION * a_deltaTime);
}
}
if (m_speed.X > 0)
{
m_facingRight = true;
}
else if (m_speed.X < 0)
{
m_facingRight = false;
}
if (m_speed.Y < -300 && KeyboardHandler.isKeyPressed(GameState.getJumpKey()))
{
m_speed.Y -= AIRVERTICALACCELERATION;
}
m_cameraPoint.X = Math.Max(Math.Min(m_cameraPoint.X + (m_speed.X * 1.5f * a_deltaTime), CAMERAMAXDISTANCE), -CAMERAMAXDISTANCE);
}