swift - 在节点的右边缘而不是在中心旋转 SKSpriteNode
问题描述
我一直在寻找这个答案,人们说使用锚点是我的解决方案。当我更改锚点时,它不起作用。
我正在使用 SKSpriteKit 使对象移动。我有一个节点是身体,另一个节点是手臂。我正在尝试旋转手臂,使其附着在身体上但仍在旋转。我得到的是手臂按其中心旋转。我希望它在边缘旋转,使其看起来附着在身体上。有人可以帮忙吗?下面的代码片段。
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) 之类的东西,手臂仍然没有连接到身体上,或者位置不是我想要的位置。我想知道是否有某种方法可以改变精灵的旋转轴。提前致谢。
解决方案
放arm.anchorPoint = CGPoint(x: 1, y: 1)
推荐阅读
- python - 检测并返回推文列表中每条推文的语言
- javascript - 如何在画布中对角裁剪图像
- reactjs - Typeerror: undefined is not an object (evalating view.getQuery) after login for componentDidMount in Emulator
- python - TypeError:描述符“fbind”需要一个“kivy._event.EventDispatcher”对象但收到一个“str”
- r - mutate_impl(.data, dots) 中的错误:尝试使用零长度变量名
- angular - Angular - 如何更快地构建 72 个生产包
- opencv - ORB+BFMatcher 是否适合识别重复图像(有细微的变化?)
- c# - 从c#调用ruby脚本,进程不退出
- sorting - SELECT DISTINCT 仅用于 Google 表格查询中的一列
- c# - 为什么我的 OpenProcess(..) 调用总是返回 0?