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(子级)会影响场景中的位置查找。您可能需要使用以下方法获取全局节点位置:
以上是关于Sprite Kit翻转播放器XScale的主要内容,如果未能解决你的问题,请参考以下文章guard let scene = node?.scene else fatalError("Wait