【发布时间】:2016-04-22 22:21:57
【问题描述】:
我尝试使用 SFML 用 C++ 制作 2D 游戏。我已经绘制了精灵,现在我想让那个精灵自动移动到随机方向,当它撞到墙上时,它会弹开并改变方向。我不知道如何自动移动精灵从墙上反弹...所以请帮助我。
【问题讨论】:
标签: c++ game-physics sfml
我尝试使用 SFML 用 C++ 制作 2D 游戏。我已经绘制了精灵,现在我想让那个精灵自动移动到随机方向,当它撞到墙上时,它会弹开并改变方向。我不知道如何自动移动精灵从墙上反弹...所以请帮助我。
【问题讨论】:
标签: c++ game-physics sfml
sf::Sprite 有一个成员函数setPosition (float x, float y),您可以使用它来设置精灵在绘制之前的位置。通过将精灵移动到每一帧的新位置,您可以创建运动的印象,就像卡通一样。通过将精灵的位置与场景中其他元素的位置(如墙壁)进行比较,您可以计算出 2 个对象何时撞击并采取适当的行动。通常它是这样工作的:
sf::Clock 或 C++ 的 chrono。ObjectSpeed * Previous frame time
【讨论】: