我的_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,似乎数学对于我的碰撞检测会变得不必要地复杂化。我是否需要两个面向每个方向的播放器实例。我需要两套精灵吗?
答案 0 :(得分:0)
这是一个可以解决您的问题的教程。 http://www.raywenderlich.com/45152/sprite-kit-tutorial-animations-and-texture-atlases 我发现它非常有帮助。项目中的熊会根据您触摸屏幕的哪一侧翻转。 6号是我相信你的答案是......
答案 1 :(得分:0)
这很晚了,但我想我找到了解决方案。创建一个全局节点(跟踪位置),并将xscale和yscale节点作为子节点添加到该全局节点。您现在就可以跟踪位置(全局),而不必担心-xscale / -yscale(子级)会影响场景中的位置查找。