【发布时间】:2017-12-03 04:26:17
【问题描述】:
我有一个 spritekit 场景,并向其中一个 spriteSceneNode 添加了一些动作序列。 比如说,一个名为 node1 的 spriteSceneNode 移动到 point1 然后它会移动到 point2 然后 point3 等等。它是通过使用“SKAction.moveTo”函数实现的。
我的问题是,
是否可以在到达每个点(point1或point2或point3)时调用自定义函数?
在这里添加一些代码。
func MoveObjectToAnotherPosition(arrayOfPoints : [CGPoint],object: SKSpriteNode ) {
let from = object.position
var curPoint1 = object.position
let move = SKAction.move(to: from ,duration: 0.5)
var arrayOfMove : [SKAction] = []
arrayOfMove.append(move)
for point in (arrayOfPoints ) {
let move2 = SKAction.move(to: point,duration: 2.5)
let deltaX = point.x - curPoint1.x
let deltaY = point.y - curPoint1.y
let angle = atan2(deltaY, deltaX)
// let graph = childNode(withName: "Graph1")?
print(angle)
let ang = point.angle(to: curPoint1)
print(ang)
let codeToRunWhenReachingPointX = SKAction.run {
let anglevalue = angle + 90 * self.DegreesToRadians
self.movObject.zPosition = anglevalue
print(anglevalue)
}
//print(anglevalue)
let rotate = SKAction.rotate(byAngle: -angle, duration: 0.0)
arrayOfMove.append(codeToRunWhenReachingPointX)
arrayOfMove.append(move2)
curPoint1 = point
}
let moveToSequence = SKAction.sequence(arrayOfMove)
object.run(moveToSequence)
}
有什么帮助吗?
【问题讨论】:
标签: ios swift3 sprite-kit skaction