如何在屏幕上缓慢移动对象

How do I move an object on the screen slowly?

本文关键字:缓慢 移动 对象 屏幕      更新时间:2023-10-16

在我的主游戏循环中,我使用调用obj.move(1, 0)将对象向右移动,但它移动得很快,因为它处于循环中。我怎样才能把它降到一定的速度?

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

测量每帧(即delta)的运行时间(以毫秒为单位),并将其累积在控制动画(每个对象)的变量中。然后将object.move封装在一个条件中,该条件检查其总运行时间是否大于某个量,比如说30毫秒。这将导致每秒大约33次移动——这看起来像是一个平稳的移动,不太快,也不太慢。