我尝试使用 SFML 使用 C++ 制作 2D 游戏。我画了 Sprite ,现在我想让那个 Sprite 自动移动到随机方向,当它撞到墙上时,它会弹开并改变方向。我不知道如何做自动移动 Sprite 从墙上反弹的东西......所以请帮助我。
最佳答案
sf::Sprite
有一个成员函数 setPosition (float x, float y)
可以用来在绘制之前设置 Sprite 的位置。通过将 Sprite 移动到每帧的新位置,您可以创建运动的印象,就像卡通一样。通过将 sprite 的位置与场景中其他元素(如墙壁)的位置进行比较,您可以计算出两个物体何时碰撞并采取适当的行动。通常它是这样工作的:
- 在新帧的开始重置时钟,例如可以使用
sf::Clock
或 C++ 的 chrono。 - 更新场景中应该移动的所有元素的位置,例如:
ObjectSpeed * 前一帧时间
- 绘制框架
- 保存计算下一帧的时间
- 循环
关于C++ SFML - 如何制作弹跳 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36795254/