SKAction을 사용하여 동적 물리 본문을 업데이트하는 위치가 제대로 작동하지 않습니다. 그것은 말하고 싶은 것입니다. - 안녕하세요, 물리 규칙에 상관없이 내가 원하는대로 노드를 움직여야한다고 말하면됩니다.
첫 번째 해결책 - 한 노드가 특정 거리를두고 다른 노드를 따르게하려면 먼저 SKConstraint를 사용하십시오.
import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
let nodeA = SKSpriteNode(color: SKColor.greenColor(), size: CGSize(width: 50, height: 50))
nodeA.name = "nodeA"
addChild(nodeA)
let nodeB = SKSpriteNode(color: SKColor.redColor(), size: nodeA.size)
nodeB.name = "nodeB"
addChild(nodeB)
let followConstraint = SKConstraint.distance(SKRange.init(lowerLimit: nodeB.size.width * 1.5, upperLimit: nodeB.size.width * 1.5), toNode: nodeA)
nodeB.constraints = [followConstraint]
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
guard let touch = touches.first else {
return
}
childNodeWithName("nodeA")!.runAction(SKAction.moveTo(touch.locationInNode(self), duration: 2))
}
}
여전히 물리학 몸과 SKActions를 원하는 경우
... false로 모든 물리학 본체의
- 설정 "동적"속성.
- 중복 된 경우 didBeginContact (SKPhysicsContactDelegate 프로토콜)을 체크인하십시오. 위치가 바뀌는 모든 행동을 제거하는 것이 사실이라면 팁 - 피직스 바디를 노드보다 약간 크게 만듭니다.
거의 충분하지 않은 정보를 정말 높은 이동하지 않으려는 물체의 무게를 설정합니다. 4 개의 답변이 게시되고 아무 것도 허용되지 않습니까? –
여기에 더 많은 정보가 필요한 사람들과 채팅 중입니다. 제안 된 방법을 완벽하게 할 시간이 없었지만 아직 시도 중입니다. 컴퓨터에 연결하면 샘플 코드를 추가 할 수 있습니다. 적용 가능한 특정 정보가있는 경우 @DanielKanaan –