아래에 "Floor"라는 별도의 클래스가 있습니다.SKSpriteNode init (edgeLoopFrom :) - SKPhysicsBody
class Floor: SKNode {
override init() {
super.init()
//let edgeFrame = CGRect(origin: CGPoint(x: 1,y: 1), size: CGSize(width: 1078, height: 1950))
//self.physicsBody = SKPhysicsBody(edgeLoopFrom: edgeFrame)
let borderBody = SKPhysicsBody(edgeLoopFrom: self.frame)
borderBody.friction = 0
self.physicsBody = borderBody
// Apply a physics body to the node
// self.physicsBody?.isDynamic = false
// Set the bit mask properties
self.physicsBody?.categoryBitMask = floorCategory
self.physicsBody?.contactTestBitMask = nailDropCategory
self.physicsBody?.collisionBitMask = balloonCategory
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemted")
}
}
나는 기본적으로 SKSpriteNode의 화면 상단에 시작하고는 "바닥"을 접촉 자체를 제거하고 다시 위에서부터 다시 시작 바닥에 들어가 떨어지는 있습니다. 내가 가지고있는 이슈는 내 모든 SKSpriteNode가 화면의 테두리 주위로 흘러 내리지 않고 멈추는 것을 계속한다는 것입니다. 애플리케이션에 특정 노드를 무시하고 들여 보내라고 어떻게 말할 수 있습니까? 어떤 도움을 주셔서 감사합니다! 여기
은 화면의 왼쪽 이동 객체와 권리이지만 단지
if let accelerometerData = motionManager.accelerometerData {
if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft {
balloon.physicsBody?.velocity = CGVector(dx: accelerometerData.acceleration.x * -500.0, dy: 0)
} else {
balloon.physicsBody?.velocity = CGVector(dx: accelerometerData.acceleration.x * 500.0, dy: 0)
}
}
}
한 문제는 내가 기본적으로 상단에서 떨어지는 개체를 블리치 화면 하단 상에 SKSpriteNode 이미지를 가지고있다. Xcode 9를 업데이트하고 iPhone X 용 내 응용 프로그램을 업데이트했기 때문에 bottomLeop이 바로 화면에서 벗어나지 않도록 정직하게 edgeLoop을가집니다. 내 노드를 떠나지 못하게하는 방법 화면의 측면과 함께 개체가 화면의 상단에서 떨어지는 때 바닥에 떨어지는 "바닥"을 제거하고 제거하지만 나는 그것을 알아낼 수 없습니다. 귀하의 대답은 매우 도움이되었다! 그게 내가 당신이 기본적으로 대신 전체 프레임 주위에 경계를 만드는, 롭 무슨 말을하는지 얻을 – Dewan
내가 루프 연신에 대한 이미지를 추가했습니다, 난 그냥 맨 아래에 그것을 할 필요가있을 것이다 화면. 이것은이 상자가 화면 (안 아래) 그게 내가 내 아이폰을 왼쪽이나 오른쪽으로 그게 내가 할 수있는 노드를 설정하는 방법이기 때문에 기울 화면을 슬라이드의 맨 아래에 내가 가지고 SKSpriteNode 이미지를 유지하는 데 도움이된다. 롭은 다른 사람이다), 나는 그 노드를 설정하는 방법 일부는 전체 프레임 주위의 Edge loop없이 하단에 화면에 머물 수 있다면 대신 나는이 방법 –
도움이된다면 – Dewan