我正在使用以下代码使一个精灵节点在Xcode spritekit中以圆形移动。
let circleDiameter = CGFloat(100)
// center our path based on our sprites initial position
let pathCenterPoint = CGPoint(
x: object.position.x - circleDiameter,
y: object.position.y - circleDiameter/2)
// create the path our sprite will travel along
let circlePath = CGPath(ellipseIn: CGRect(origin: pathCenterPoint, size: CGSize(width: circleDiameter, height: circleDiameter)), transform: nil)
// create a followPath action for our sprite
let followCirclePath = SKAction.follow(circlePath, asOffset: false, orientToPath: false, duration: 3)
// make our sprite run this action forever
object.run(SKAction.repeatForever(followCirclePath).reversed(), withKey: “moving”)
world.addChild(object)
问题是,精灵节点起始位置始终位于圆形路径的右侧。我知道我可以使用.reversed()来改变精灵节点的方向,但这不是我要问的。
如何更改"起点"到圆路径的左侧?
谢谢大家!请参考下图:D
答案 0 :(得分:2)
CGPath(ellipseIn:...)
是一种创建路径的实用工具方法
一个椭圆,其中“参数”或“角度”从0到2π。
您无法在跟随操作中添加“偏移量”,但您可以定义 路径从圆圈的“左端”开始:
let circlePath = CGMutablePath()
circlePath.addArc(center: pathCenterPoint, radius: circleDiameter,
startAngle: -.pi, endAngle: .pi, clockwise: false)