私はゲームの始めに現れる2つの四角形を持っていますが、一度開始すると重力が落ちます。下のコードは別の "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:致命的なエラー:予期せずオプションの値をアンラップしながら、nilを見つけ」が、ときに私使う "?"の代わりに "!"アプリは動作しますが、四角形は崩れます。私は彼らがそれをしないようにするためにその行が必要であり、私はこれがどういう意味があるかを知ることさえできません。
私はあなたがそんなにひどく神経質に感謝! – Dewan
うれしいことがありましたらうれしいです。うん! :) –
もう一つの問題につながったことは、ソリューションをかなり速く知っているような気がします。チャンスがあれば新しい投稿をチェックしてくださいhttps://stackoverflow.com/questions/47946410/skysysicscontact-not-detecting-categorybitmask-collision – Dewan