如何在屏幕上缓慢移动对象
How do I move an object on the screen slowly?
在我的主游戏循环中,我使用调用obj.move(1, 0)
将对象向右移动,但它移动得很快,因为它处于循环中。我怎样才能把它降到一定的速度?
while (window.isOpen())
{
// ...
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
object.move(1, 0);
}
测量每帧(即delta
)的运行时间(以毫秒为单位),并将其累积在控制动画(每个对象)的变量中。然后将object.move
封装在一个条件中,该条件检查其总运行时间是否大于某个量,比如说30毫秒。这将导致每秒大约33次移动——这看起来像是一个平稳的移动,不太快,也不太慢。
相关文章:
- 将对象移动到std::shared_ptr
- 何时在引用或唯一指针上使用移动语义
- 如何从具有移动语义的类对象中生成共享指针
- 将shared_ptr移动到<StructA>shared_ptr<变体<结构A、结构 B>>
- C / C++ 移位/偏移/向左或向右移动位图?
- MSVC将仅移动结构参数解释为指针
- 自定义先决条件对移动分配运算符有效吗
- 返回值优化:显式移动还是隐式
- 当有分配器意识的容器被复制/移动时,反弹分配器是否被复制/移走
- 为什么复制而不是移动数据元素?
- 可以使用移动语义更改或改进此C++代码吗?
- 缓慢提升ASIO
- 使lambda不可复制/不可移动
- c++在使用指针时移动语义
- 将QGraphicsItem的移动区域限制在多边形区域内
- SendInput()鼠标移动计算
- 按值 C++ 返回时进行双倍移动
- 移动二维数组中的字符
- 如何在屏幕上缓慢移动对象
- 使用opencv仅检测缓慢移动的物体