如何慢慢移动屏幕上的对象?

时间:2014-10-04 22:16:38

标签: c++ sfml

在我的主游戏循环中,我使用调用obj.move(1, 0)将对象向右移动,但它移动得非常快,因为它处于循环中。如何将速度减慢到一定的速度?

while (window.isOpen())
{
    // ...
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
        object.move(1, 0);
}

1 个答案:

答案 0 :(得分:2)

测量每个帧的经过时间(以毫秒为单位),即delta,并将其累积在控制动画的变量中(每个对象)。然后将object.move包裹起来,检查其总经过时间是否大于某个数量,即30毫秒。这将导致每秒大约33次移动 - 看起来像一个平滑的移动,不是太快,也不是太慢。