2016-04-22 101 views
0

我尝试用C++使用SFML制作2D游戏。我绘制了精灵,现在我想让这个精灵自动移动到随机方向,当它碰到墙壁时,它会弹跳并改变方向。我不知道如何做自动移动精灵从墙上弹出...所以请帮助我。C++ SFML - 如何使弹跳精灵?

回答

1

sf::Sprite有一个成员函数setPosition (float x, float y),您可以使用它来设置精灵在绘制之前的位置。通过将精灵移动到新的位置,您可以创建每个框架的移动印象,就像卡通一样。通过比较精灵的位置和场景中其他元素的位置(如墙壁),可以计算出2个物体何时击中并采取适当的操作。通常,它的工作原理是这样的:

  • 在一个新的帧的开始重置时钟,可以使用sf::Clock或C++的时辰例如。
  • 更新场景中的所有元素应该这样被移动的位置等:ObjectSpeed * Previous frame time
  • 画出框计算下一帧
  • 节省时间已过