Прыгающий мяч немного выходит за пределы экрана в Spritekit

У меня есть следующий код, который имитирует прыгающие мячи. Хотя я упоминал, что тела должны оставаться в рамках self.frame, они уходят (весь шар уже не виден), а затем возвращаются. Это потому, что рамка имеет большую ширину, чем видимые границы. Зато с высотой все в порядке.

override func didMoveToView(view: SKView) {    
    self.physicsWorld.gravity = CGVectorMake(0, -9.8)
            let sceneBody = SKPhysicsBody(edgeLoopFromRect: frame)
            sceneBody.friction = 0
            self.physicsBody = sceneBody

    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        for touch in touches{
            var pos = touch.locationInNode(self)
            var ball = SKShapeNode(circleOfRadius: 25)
            ball.position = pos
            ball.physicsBody = SKPhysicsBody(circleOfRadius: 25)
            ball.physicsBody?.affectedByGravity = true
            ball.physicsBody?.restitution = 0.9
            ball.physicsBody?.linearDamping = 0

            self.addChild(ball)
        }
    }

person A. Mashreghi    schedule 03.09.2016    source источник
comment
Добавьте scaleMode = .ResizeFill и измените frame на view.frame в didMoveToView   -  person 0x141E    schedule 03.09.2016
comment
Спасибо, это работает отлично.   -  person A. Mashreghi    schedule 04.09.2016
comment
Сомневаюсь, что работает идеально. @ 0x141e, никогда не следует использовать view.frame, это должен быть кадр сцены, и объясните бедному парню .ResizeFill, потому что теперь, когда он переключает устройства, он снова потеряется   -  person Knight0fDragon    schedule 04.09.2016