Ich habe eine separate "Floor" -Klasse in meiner SKSpriteKit-Anwendung. Als ich diese Klasse erstellt, hatte ich eine Barriere um den gesamten RahmenWand/Barriere mit SKSpriteNode physicsBody erstellen
self.physicsBody = SKPhysicsBody mit (edgeLoopFrom: self.frame)
aber das war eigentlich SKSpriteNodes vom Betreten von dem Stopp Oben auf dem Bildschirm, also versuche ich jetzt herauszufinden, wie ich eine linke, rechte und untere der Rahmenwand, aber nicht die Oberseite erstellen kann. Dies ist, damit ich einen meiner SKSpriteNodes am unteren Bildschirmrand vermeiden kann (immer noch für Benutzer sichtbar), der sich nach links und rechts bewegt, um das Display zu verlassen. Ich versuche darunter, das baut, als würde es funktionieren, aber wenn ich das Spiel starte, sehe ich nicht die Wände? Ich bin nicht sicher, was ich falsch mache, ich habe
skView.showsPhysics = true
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")
}
}
eingestellt Was ist die Szene, Größe und Maßstab-Modus? I.e. Sie positionieren diese Sprite-Knoten bei 100,100 und 200,200, sind Sie sicher, dass das im sichtbaren Bereich Ihrer Szene liegt? Auch nicht das Hauptproblem, sondern: Du weist der Szene zweimal einen Physikkörper zu und es kann nur einen haben, also füge die Physikkörper den Sprites hinzu, also nicht "self.physicsBody =" sondern "leftWall.physicsBody =". –
Schalten Sie die Schwerkraft für Ihre Wände aus – Knight0fDragon
im Grunde möchten Sie tun 'leftWall.isDynamic = false' – Knight0fDragon