내 게임의 시작 부분에 두 개의 직사각형이 표시되지만 일단 시작되면 중력이 내려갑니다. 아래 코드는 별도의 "Floor.swift"클래스에 있습니다. 나는 또한 아래 정보와 함께 "BitMaskCategories.swift"파일을 가지고있다.중력 제거 SKNode 플로어 클래스
let ballCategory : UInt32 = 0x1 << 1
let avoidCategory : UInt32 = 0x1 << 2
let floorCategory : UInt32 = 0x1 << 3
let pointCategory : UInt32 = 0x1 << 4
let lifeCategory : UInt32 = 0x1 << 5
그리고 여기 내 "Floor.swift"클래스
import Foundation
import SpriteKit
class Floor: SKNode {
override init() {
super.init()
let leftWall = SKSpriteNode(color: UIColor.brown, size: CGSize(width: 50, height: 300))
leftWall.position = CGPoint(x: 0, y: 100)
leftWall.physicsBody!.isDynamic = false
leftWall.physicsBody = SKPhysicsBody(rectangleOf: leftWall.size)
self.addChild(leftWall)
let rightWall = SKSpriteNode(color: UIColor.brown, size: CGSize(width: 50, height: 300))
rightWall.position = CGPoint(x: 100, y: 200)
rightWall.physicsBody!.isDynamic = false
rightWall.physicsBody = SKPhysicsBody(rectangleOf: rightWall.size)
self.addChild(rightWall)
// self.physicsBody?.affectedByGravity = false
// self.physicsBody?.isDynamic = false
// Set the bit mask properties
self.physicsBody?.categoryBitMask = balloonCategory
self.physicsBody?.contactTestBitMask = nailDropCategory | pointCategory | lifeCategory
//self.physicsBody?.collisionBitMask = balloonCategory
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemted")
}
}
나는 오류 "스레드 1 : 치명적인 오류 : 예기치 않게하는 옵션 값 풀기 동안 전무 발견"이유는 무엇입니까하지만 때를 "?" 대신에 "!" 응용 프로그램이 작동하지만 사각형이 떨어집니다. 나는 그것을하지 않기 위하여 그 선을 필요로하고 이것이 의미있는 방법조차 얻지 못한다. 그것을
이동, rightWall.physicsBody!.isDynamic = false
: 동일한
당신이 leftWall.physicsBody!.isDynamic = false
후leftWall.physicsBody = SKPhysicsBody(rectangleOf: leftWall.size)
를 이동해야 개체 초기화 전에 .isDynamic = false
및 :
난 당신이 너무 많은 괴물 주셔서 감사합니다! – Dewan
도움이 되셨다면 기쁘게 생각합니다. 네! :) –
그래서 한 가지 문제가 생겼습니다. 솔루션을 상당히 빨리 알게 될 것 같습니다. 기회가 생기면 내 새 게시물을 확인하십시오. https://stackoverflow.com/questions/47946410/skysysicscontact-not-detecting-categorybitmask-collision – Dewan