2016-03-31 20 views
3

フレーム対ビューで複数の投稿を読み込んだ後も、私はまだこの動作を得ることができません。 Xcode(7.3)を開き、IOSのための新しいゲームプロジェクトを作成します。デフォルトのシーンファイルでは、右のaddChildした後、私は次のコードを追加します。私はiPhone 6Sのためにそれを実行したときにSwift/IOSでの実際の表示サイズの取得

print(self.view!.bounds.width) 
    print(self.view!.bounds.height) 

    print(self.frame.size.width) 
    print(self.frame.size.height) 

    print(UIScreen.mainScreen().bounds.size.width) 
    print(UIScreen.mainScreen().bounds.size.height) 

を私は次のような結果を得る:

667.0 
375.0 
1024.0 
768.0 
667.0 
375.0 

私は、最初の2つの数字であることを推測することができます網膜ピクセルサイズ(x2)。フレームサイズが1024x768を報告する理由を理解しようとしていますか?

それから私は、画面を埋めるために、単純な背景画像のサイズを変更するには、次のコードを追加します。

self.anchorPoint = CGPointMake(0.5,0.5) 

    let theTexture = SKTexture(imageNamed: "intro_screen_phone") 
    let theSizeFromBounds = CGSizeMake(self.view!.bounds.width, self.view!.bounds.height) 
    let theImage = SKSpriteNode(texture: theTexture, color: SKColor.clearColor(), size: theSizeFromBounds) 

私は画面サイズよりも小さい画像を得ます。風景モードを選択すると、画像がさらに小さく表示されます。

実際の画面サイズを取得したいと考えていますが、画像の幅が大きくなりすぎてしまいました。私はまた、画像を画面より少し大きくするフレームサイズを試しました。

私の混乱の主な理由は、知識が不足していることに加えて、この正確な例が完全に動作するレッスンであることがわかりました。どちらかというと明白な何かが欠けていますか?

答えて

3

フレームはピクセルではなくポイントで定義されているため、1024x768として与えられます。

skView.presentScene(scene)

使用この:

scene.size = self.view.frame.size

をシーンが前に、あなたのGameViewControllerに提示される前

あなたは、あなたのシーンがあなたの画面と同じサイズになりたい場合はこれはシーンを画面の正確なサイズにします。

その後、あなたは簡単にイメージがそうのようなシーンを埋める作ることができます:

func addBackground() { 

     let bgTexture = SKTexture(imageNamed: "NAME") 

     let bgSprite = SKSpriteNode(texture: bgTexture, color: SKColor.clearColor(), size: scene.size) 
     bgSprite.anchorPoint = CGPoint(x: 0, y: 0) 
     bgSprite.position = self.frame.origin 
     self.addChild(bgSprite) 
    } 

また、ビューの境界とそれのフレームとの間の差にまで読むことをお勧めします。

+0

ありがとうございました。私は、「シーン」が画面のサイズとは異なるサイズであるとは考えていませんでした。本当に私の目を開いた。 – cdpalmer

関連する問題