Я пытаюсь создать базовый c 2d платформер для университетского проекта.
Я создал динамическую форму игрока c. Код, который у меня есть в настоящее время, позволяет мне двигаться влево и вправо, а также прыгать, когда на земле, как мне и нужно.
Однако, когда игрок приземляется от прыжка, он останавливается на месте, вместо продолжения движения влево или вправо соответственно.
Вот мой код движения игрока:
void Character::onKeyPress(sf::Event event)
{
if (event.key.code == sf::Keyboard::Right)
{
m_body->ApplyLinearImpulseToCenter(b2Vec2(0.03f, 0.f), true);
}
if (event.key.code == sf::Keyboard::Left)
{
m_body->ApplyLinearImpulseToCenter(b2Vec2(-0.03f, 0.f), true);
}
if (event.key.code == sf::Keyboard::Space)
{
if (m_sit == true)
{
m_body->ApplyLinearImpulseToCenter(b2Vec2(0.f, -0.3f), true);
}
else m_body->ApplyLinearImpulseToCenter(b2Vec2(0.f, 0.f), true);
}
}
void Character::onKeyRelease(sf::Event event)
{
if (event.key.code == sf::Keyboard::Right)
{
m_body->ApplyLinearImpulseToCenter(b2Vec2(0.f, 0.f), true);
}
if (event.key.code == sf::Keyboard::Left)
{
m_body->ApplyLinearImpulseToCenter(b2Vec2(0.f, 0.f), true);
}
if (event.key.code == sf::Keyboard::Space)
{
if (m_sit == true)
{
m_body->ApplyLinearImpulseToCenter(b2Vec2(0., 0.f), true);
}
else m_body->ApplyLinearImpulseToCenter(b2Vec2(0.f, 0.f), true);
}
}
Любая помощь очень ценится.
Заранее спасибо.