나는 사용자 정의 SKAction를 만들 수 있습니다것은 SKAction 스위프트
//Setup
let node = SKNode()
node.position = CGPoint(x: 50, y: 50)
let destination = CGPoint(x: 100, y: 100)
//Move from node's current position half way towards the destination
let action = SKAction.move(from: node.position, halfWayTo: destination, duration: 1)
node.run(action)
하지만 표준 유지 : 다음과 같이 사용
extension SKAction {
class func move(from: CGPoint, halfWayTo: CGPoint, duration: TimeInterval) -> SKAction {
let midPoint = CGPoint(x: (from.x + halfWayTo.x)/2, y: (from.y + halfWayTo.y)/2)
return SKAction.move(to: midPoint, duration: duration)
}
}
:
SKAction.move(to: destination, duration: 1)
차라리 말할 수있을 것입니다 :
let action = SKAction.move(halfWayTo: destination, duration: 1)
node.run(action)
하지만 사용자 정의 SKAction 내부에서 '노드'를 참조하는 방법을 모르므로 위치를 가져올 수 있으며 중간 지점을 계산할 수 있습니까?
을 제가했습니다 비슷한 것을하려고 시도하고 있었고, 나는 그것을 할 방법이 없다고 생각합니다. SKAction.move (halfwayTo :)를 호출 할 때'SKAction'은 해당 SKNode에 액세스 할 수 없습니다. 'SKNode'에 대한 당신의 확장은 흥미로운 아이디어이지만, 원래 예제에서와 같이'SKAction'에 대한 확장을 계속하고 그냥 출발점을 전달할 것입니다. 우리가 'SKAction'을 만들고 있다는 것을 코드에서 명확하게 밝혀내는 것이 좋습니다. – GreatBigBore
SKAction을 확장 한 것이 더 낫다는 것에 동의합니다. – Adahus