【问题标题】:How to make an Smooth Movement in C++, SFML如何在 C++、SFML 中进行平滑运动
【发布时间】:2017-02-21 14:55:54
【问题描述】:

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

【问题讨论】:

  • 您在创建这样一个算法方面的尝试是什么?
  • 我不知道如何进行平滑运动,我知道“固定”运动(identifier.move(x,y))。
  • 没有“平滑”或“固定”移动,只需使用较小的值

标签: c++ sfml


【解决方案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();
    }
}

【讨论】:

  • 执行此操作时出错:movement * (float)tickRate.asMilliseconds() / 1000
猜你喜欢
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 2017-06-10
相关资源
最近更新 更多