내 응용 프로그램에서 프로그래밍 방식으로 노드의 물리 본문을 만들고 싶습니다. 그러나 Physics 바디를 프로그래밍 방식으로 만들면 SpriteKit 편집기에서 만든 물리 본문이 작동하지만 작동하지 않는 것 같습니다. Physicsbody가 프로그래밍 방식으로 생성되면 편집기에서 생성 될 때 다른 노드와 충돌하지 않습니다.SKPhysicsBody의 이상한 동작
physicsBody = SKPhysicsBody(rectangleOf: size)
if let body = self.physicsBody{
body.isDynamic = true
body.affectedByGravity = false
body.allowsRotation = false
body.categoryBitMask = CollisionCategoryBitmask.shootWall.rawValue
body.collisionBitMask = CollisionCategoryBitmask.circle.rawValue
body.contactTestBitMask = CollisionCategoryBitmask.circle.rawValue
}
크기가 노드의 크기 속성입니다 :
여기 내 코드입니다.
이제 Physics 본문이 노드에 할당 된 첫 번째 행을 주석으로 처리하고 대신 SpriteKit 장면 편집기에서 물리 본문을 설정하면 작동합니다. 두 조건 모두에서 if 조건 내의 코드가 실행되고 있음에 유의하십시오.
업데이트는 :
흥미로운 것은 내가이 작업을 수행 할 때이다 :
physicsBody = SKPhysicsBody(bodies: [physicsBody!])
다음, 그것 때문에 기본적으로 변화하는 것도 어떤 영향을 미칠하지해야하는 것이 뿐만 아니라 작동하지 않습니다. SpriteKit의 버그입니까?
, 나는 느낌 당신이 만약 당신에게 재설정하여 어떤 방법 – Knight0fDragon
에 몸을 재설정하는 한 의미를 사용하여이 작업을 수행 할 수 있습니다 . 장면의 upstate 메서드에 중단 점을 설정하고 물리학 체의 값을 확인했지만, 그것은 0이 아닙니다. – Lenny1357
아니요 당신이 만든 일반 물리학자가 아닌 새로운 일반 물리학자를 적용하고 있습니다 – Knight0fDragon