SKSpriteKit 응용 프로그램에 별도의 "Floor"클래스가 있습니다. 처음이 클래스를 생성 할 때, I는SKSpriteNode physicsBody를 사용하여 벽/장벽 만들기
self.physicsBody = SKPhysicsBody하여 프레임 전체 주위 장벽했다 (edgeLoopFrom : self.frame)
을하지만 실제로로부터 유입 SKSpriteNodes 정지시켰다 화면의 상단에서 프레임 벽의 왼쪽, 오른쪽, 아래쪽을 어떻게 만들 수 있는지 알아 내려고 노력했습니다. 이것은 화면의 왼쪽에서 (사용자가 볼 수있는) 내 SKSpriteNodes 중 하나를 피할 수 있기 때문에 디스플레이를 떠나는 것에서 왼쪽과 오른쪽으로 움직입니다. 나는 그것이 작동 할 것 인 것처럼 건물 인 아래에서 시험하고있다. 그러나 내가 게임을 시작할 때 나는 벽을 보지 않는다? 나는 = 나는
skView.showsPhysics이
import Foundation
import SpriteKit
class Floor: SKNode {
override init() {
super.init()
let leftWall = SKSpriteNode(color: UIColor.brown, size: CGSize(width: 100, height: frame.height))
leftWall.position = CGPoint(x: 100, y: 100)
leftWall.physicsBody = SKPhysicsBody(rectangleOf: leftWall.size)
leftWall.physicsBody!.isDynamic = false
self.addChild(leftWall)
let rightWall = SKSpriteNode(color: UIColor.brown, size: CGSize(width: 100, height: frame.height))
rightWall.position = CGPoint(x: 200, y: 200)
rightWall.physicsBody = SKPhysicsBody(rectangleOf: rightWall.size)
rightWall.physicsBody!.isDynamic = false
self.addChild(rightWall)
// Set the bit mask properties
self.physicsBody?.categoryBitMask = balloonCategory
self.physicsBody?.contactTestBitMask = nailDropCategory
//self.physicsBody?.collisionBitMask = balloonCategory
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemted")
}
}
장면 크기와 크기 조절 모드는 무엇인가를 설정, 당신의 몸이 힘을 무시하게하려면? 나는. Sprite 노드의 위치를 100,100 및 200,200으로 지정하면 장면의 보이는 부분 내에 있는지 확인하십시오. 또한 주된 문제가 아니라 물리 체 바디를 두 번 할당하고 하나만 가질 수 있으므로 physics 바디를 스프라이트에 추가하십시오. "self.physicsBody ="가 아니라 "leftWall.physicsBody ="입니다. –
벽의 중력을 끄기 – Knight0fDragon
기본적으로 'leftWall.isDynamic = false'를 입력하십시오. – Knight0fDragon