Swift SpriteKit edgeLoopFromRect Issue
Der folgende Code erkennt das Unterseite und Oberkante der Szene und der Ball springt wie erwartet ab. Das Linke und rechte Kanten der Szene sind die ganze Zeit verletzt. Der Ball verlässt den Bildschirm und kehrt schließlich zurück, wenn genügend Kraft ausgeübt wird. Es ist, als ob die Ränder der Szene jenseits der Ränder des iPhone-Simulatorfensters liegen.
import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView){
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
backgroundColor = UIColor.cyanColor()
var ball = SKSpriteNode(imageNamed: "ball")
ball.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
self.addChild(ball)
ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.frame.size.height/2)
let push = CGVectorMake(10, 10)
ball.physicsBody.applyImpulse(push)
}
}
Ich denke, es hat etwas mit der .sks-Datei zu tun, da dort Dimensionen festgelegt sind, und wenn ich diese Dimensionen ändere, wirkt es sich auf das Spiel aus. Weiß jemand, wie man es so macht, dass diese Codezeile Vorrang vor den .sks-Dateidimensionen hat? Auf diese Weise wird es dynamisch und kann auf verschiedenen Geräten verwendet werden.
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
Ich fand die gleiche Frage hier, wurde aber nie beantwortet:Swift Physicsbody Edge Erkennungsproblem
Auch ich bin neu bei iOS App-Entwicklern und schnell. Verzeih mir, wenn die Antwort offensichtlich ist und ich sie verpasst habe.