【问题标题】:Sprite rotates in the destination point精灵在目标点旋转
【发布时间】:2016-08-16 20:34:19
【问题描述】:

我正在尝试对我的精灵实现点击控制。一切基本上都很好,但是当精灵到达目标点时会出现奇怪的伪影。看起来它一遍又一遍地不断地旋转 180 度。

和正常状态比较。

我已经尝试使用这个函数来避免它:

sf::Vector2f GetDirection(const sf::Vector2f& start, const sf::Vector2f& destination) {
    sf::Vector2f dir = destination - start;
    if (GetLength(dir) <= 0.1) {
        return sf::Vector2f(0.0f, 0.0f);
    }
    return Normalize(dir);
}

但条件很少为真。完整代码is here.

我做错了什么?

【问题讨论】:

    标签: c++11 sfml


    【解决方案1】:

    你的问题是你没有办法“打破”。

    您将达到 300/300。你超越了你的目标。到你了。你回去吧。你超越了你的目标。冲洗并重复。

    您错过了一项检查,即如果您当前的速度超过了达到目标所需的速度,您应该只使用必要的速度。不多了。

    你检查很好。但它会检查您与目标的距离是否不到十分之一像素。也许你应该检查不太详细。一个像素就足够了。替换

    if (GetLength(dir) <= 0.1) {
    

    if (GetLength(dir) <= 1.0) {
    

    它会起作用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      相关资源
      最近更新 更多