SKSpriteKitアプリケーションに別の "Floor"クラスがあります。私が最初にこのクラスを作成したとき、私はSKSpriteNodeを使用して壁/バリアを作成するphysicsBody
self.physicsBody = SKPhysicsBody(edgeLoopFrom:self.frame)を使用して、フレーム全体の周りにバリアを持っていた
をそれは実際に入ることからSKSpriteNodesを停止しました。画面の上部にあるので、フレーム壁の左、右、下をどのように作成するのかを理解しようとしています。これは、ディスプレイの左から右に移動する画面の下端(ユーザがまだ見ることができる)のSKSpriteNodesの1つを避けるためです。私はそれがうまくいくかのように構築しているの下にしようとしているが、私はゲームを起動するときに私は壁が表示されません?私は、重力があなたの壁に影響を及ぼしているので、彼らは永遠に忘却の淵に落ちている
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に配置していますが、シーンの可視部分にあることは確かですか?また、主な問題ではなく、フィジックスボディをシーンに2回割り当て、1つしか持たないので、physicsボディをスプライトに追加します。「self.physicsBody =」ではなく「leftWall.physicsBody =」です。 –
あなたの壁の重力をオフにします – Knight0fDragon
基本的にあなたがしたい 'leftWall.isDynamic = false' – Knight0fDragon