【问题标题】:Sprite Kit flip player XScaleSprite Kit 翻转播放器 XScale
【发布时间】:2014-02-21 21:54:55
【问题描述】:

我的 _player 有一个 SKSpriteNode,并且 _player 节点有两个子节点组成我的角色。

具有此配置的精灵的角色朝右。

当我需要让角色面朝左时,我尝试使用 xScale = -1.0,但是当我这样做时,似乎框架并没有反映屏幕上看到的内容,因为我的 CGRectIntersectsRect 表现得好像角色仍然面向原始方向。

除了 cgrect 问题,我将角色旋转到对象,所以我最终不得不做这样的事情:

 if( sprite.xScale == -1.0){
    sprite.zRotation = atan2f(direction.y, direction.x);
    } else {
        sprite.zRotation = atan2f(-direction.y, -direction.x);
    }

什么是翻转播放器的正确方法。如果我使用 xScale,对于我的碰撞检测来说,数学似乎会变得不必要地复杂。我是否需要两个面向每个方向的玩家实例。我需要两组精灵吗?

【问题讨论】:

  • 你解决过这个问题吗?我想知道如何处理可以向左或向右“看”的精灵,并且需要在那个方向上有一个视野......

标签: ios sprite-kit xscale


【解决方案1】:

这里有一个教程可以解决您的问题。 http://www.raywenderlich.com/45152/sprite-kit-tutorial-animations-and-texture-atlases 我发现它很有帮助。项目中的熊会根据您触摸屏幕的哪一侧翻转。我相信你的答案是第 6 位......

【讨论】:

  • 感谢您的回复。他们以与我上面相同的方式使用 xScale,但对他们来说并不复杂,因为他们的角色没有任何子节点。他们的角色前后形状也是一样的,所以他们在检测碰撞时不会遇到和我一样的问题。
【解决方案2】:

这已经晚了,但我想我找到了解决办法。创建一个全局节点(跟踪位置)并将您的 xscale、yscale 节点作为子节点添加到此全局节点。您现在可以跟踪位置(全局),而不必担心 -xscale/-yscale(子级)会影响场景中的位置查找。

【讨论】:

    猜你喜欢
    • 2014-05-23
    • 1970-01-01
    • 2022-07-08
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2013-10-15
    相关资源
    最近更新 更多