C++ SFML - 如何制作弹跳 Sprite ?

标签 c++ game-physics sfml

我尝试使用 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/

相关文章:

java - 类似 Agar.io 的细胞物理学

c++ - C++和SFML,没有重载函数 “sf::RenderWindow.draw()”的实例与参数列表匹配

c++ - 如何将 16 位 unsigned int 转换为 8 位 unsigned char 并最终返回 unsigned char*?

c++ - memcmp 适用于非平面结构吗?

c++ - void*字面意思是float,怎么投?

java - 静止后 JMonkey 物理对象被卡住在适当的位置

python - 碰撞Pygame后穿过墙壁

c++ - 缺少 MSVCR90D.dll

c++ - 如果语句未在SFML中输出

c++ - 是否存在轻量级且免安装的数据库系统?