Sprite Kit翻转播放器XScale

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sprite Kit翻转播放器XScale相关的知识,希望对你有一定的参考价值。

我的_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,似乎对于碰撞检测来说,数学将变得不必要地复杂。我是否需要两个玩家实例,每个实例都面向每个方向。我需要两组精灵吗?

答案

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

另一答案

这很晚了,但我想我找到了解决方案。创建一个全局节点(跟踪位置),并将xscale和yscale节点作为子节点添加到该全局节点。您现在可以跟踪位置(全局),而不必担心-xscale / -yscale(子级)会影响场景中的位置查找。您可能需要使用以下方法获取全局节点位置:

guard let scene = node?.scene else fatalError("Wait

以上是关于Sprite Kit翻转播放器XScale的主要内容,如果未能解决你的问题,请参考以下文章

我的 Sprite Kit 游戏第一次播放音频变慢?

使用 Sprite Kit 画线时播放声音

为啥我的音频会在 Sprite Kit 场景转换之前播放?

xcode sprite kit 背景音乐

Sprite Kit 相机平滑移动,延迟

Sprite Kit 加载速度慢