在节点的右边缘而不是在中心旋转 SKSpriteNode
Posted
技术标签:
【中文标题】在节点的右边缘而不是在中心旋转 SKSpriteNode【英文标题】:Rotate SKSpriteNode on right edge of node instead of in center 【发布时间】:2018-08-07 03:58:36 【问题描述】:我一直在寻找这个答案,人们说使用锚点是我的解决方案。当我更改锚点时它不起作用。
我正在使用 SKSpriteKit 使对象移动。我有一个节点是身体,另一个节点是手臂。我正在尝试旋转手臂,使其附着在身体上但仍在旋转。我得到的是手臂按其中心旋转。我希望它在边缘旋转,使其看起来附着在身体上。有人可以帮忙吗?代码如下:sn-p。
arm.position = CGPoint(x: -30, y: 0)
arm.zPosition = 1
body.zPosition = 0
addChild(arm)
addChild(body)
var rotation = SKAction.rotate(byAngle: CGFloat(-Double.pi/2.2), duration: 0.4)
var rotationAction = SKAction.sequence([rotation])
arm.run(rotationAction)
如果我将锚点设置为 (0.3, 0.5) 之类的东西,手臂仍然没有连接到身体上,或者位置不是我想要的位置。我想知道是否有某种方法可以改变精灵的旋转轴。提前致谢。
【问题讨论】:
Bendable arm rotation in SpriteKit - rotate at point的可能重复 ***.com/q/51294892/1430420的可能重复 你了解anchorPoint的工作原理吗?它本质上是一个插入你手臂的图钉。因此,如果这是所有纸板切口,它将是您将销钉推入手臂的位置,而销钉就是身体上的位置。 好的,所以我把锚点设置为 0.5,默认为 0.5,如果我改变任何一个坐标值,那么手臂就会离开身体,这不是我想要的。 【参考方案1】:设置arm.anchorPoint = CGPoint(x: 1, y: 1)
【讨论】:
这只是将手臂完全从身体上移开。以上是关于在节点的右边缘而不是在中心旋转 SKSpriteNode的主要内容,如果未能解决你的问题,请参考以下文章