屏幕的实际尺寸比我看到的要大

Pot*_*ter 6 ios sprite-kit swift xcode6

我正在学习Swift和SpriteKit.我在Xcode 6中创建了新的SpriteKit和Swift游戏项目,我编辑了文件GameScene.swift.我没有碰到其他文件.问题是:当球反弹时,它受到顶部和底部的限制但是当它向左或向右侧时它不受限制并且熄灭但似乎左右限制在那里但它们不在屏幕边缘因为球在一段时间后回来了.这是我的GameScene.swift:

import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        self.backgroundColor = SKColor.whiteColor()

        self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
        self.physicsWorld.gravity = CGVectorMake(0, 0)

        let ball = SKSpriteNode(imageNamed: "ball")
        ball.position = CGPointMake(self.size.width/2, self.size.height/2)

        ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.frame.size.width/2)

        self.addChild(ball)

        var myVector = CGVectorMake(20, 20)
        ball.physicsBody.applyImpulse(myVector)
    }

    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图找出问题,我发现如果我评论第42行或scene.scaleMode = .AspectFill默认情况下GameViewController.swift边缘工作正确,但似乎屏幕缩放.

我认为我们有一个真正的形状正方形框架,侧面尺寸等于iOS模拟器中纵向iPhone的高度.如何更改框架大小以将屏幕边缘设置为我的框架边缘?

小智 6

如上所述,设置尺寸也适合我.我在GameViewController的viewDidLoad()函数中设置它,就在设置的行之后

/* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill
Run Code Online (Sandbox Code Playgroud)

通过设置:

scene.size = self.view.frame.size
Run Code Online (Sandbox Code Playgroud)


Pot*_*ter 2

我删除了默认创建的场景并添加了线条scene = GameScene(size: self.view.frame.size),它成功了!感谢@Literphor