如何在C ++,SFML中进行平滑移动

时间:2016-10-12 17:29:14

标签: c++ sfml

我在使用c ++ w / sfml进行平滑移动时遇到问题。 有人可以制作一个算法,通过按下按钮平滑移动形状/精灵15 px(精灵/形状是15像素)?感谢。

1 个答案:

答案 0 :(得分:1)

因为许多其他程序员可能想知道,这里是,但下次问一个更精确的问题 这是我的顺利运动的方式:

采取初步动作,让我们说每秒25, 15
做一个像这样的循环:

void GameEngine::GameLoop()
{
    sf::Clock timer;
    sf::Time tickRate;

    sf::Vector2f movement(25.0,15.0); // Your movement vector

    while(/* wahtever */){
        tickRate = timer.restart();
        yourShape.move(movement * ((float)tickRate.asMilliseconds() / 1000)); //Move your shape depending on the time elapsed between two frame

        yourWindow.clear();
        yourWindow.draw(yourShape);
        yourWindow.display();
    }
}