2
当我将对象移动到其开始位置时非常慢,然后开始加速。我希望有一个恒定的速度,但我不知道什么是错的速度增加
const float m_Walkspeed = 0.1;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left) && m_position.x > 0)
{
m_velocity.x -= m_Walkspeed;
CurrentAnimation = &AnimationLeft;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right) && m_position.x < 800)
{
m_velocity.x += m_Walkspeed;
CurrentAnimation = &AnimationRight;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) && m_position.y > 0)
{
m_velocity.y -= m_Walkspeed;
CurrentAnimation = &AnimationUp;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) && m_position.y < 560)
{
m_velocity.y += m_Walkspeed;
CurrentAnimation = &AnimationDown;
}
m_position += m_velocity;
m_velocity = sf::Vector2f(0, 0);
CurrentAnimation->setPosition(m_position);
}
我承担这是你的游戏更新功能。这个函数是否定期调用?如果不是,则需要查找自函数上次以来的时间,并适当调整位置变化。 –
如果你按住一个键,你的意思是速度增加吗? –