2017-04-04 3 views
2

シンプルな2dゲームで作業しており、レベル1(シーン1)からレベル2(シーン2)に切り替えようとしています。テストのために、両方のレベルに同じ内容が含まれています。これは、移行のために私のコードです:SKSceneセンターポイントを変更する

let transition = SKTransition.push(with: SKTransitionDirection.left, duration: 1) 
    let nextScene = Scene(size: levelBuilder.scene.size) 
    nextScene.scaleMode = .aspectFill 
    nextScene.backgroundColor = UIColor(red:0.17, green:0.24, blue:0.31, alpha:1.0) 
    levelBuilder.scene.view?.presentScene(nextScene, transition: transition) 

    nextScene.physicsWorld.gravity = CGVector(dx: 0, dy: 0) 
    nextScene.physicsWorld.contactDelegate = levelBuilder.scene.physicsWorld.contactDelegate 

    loadLevelContents(level: 2, world: 1, borderPercentage: 30) 

これは完璧に動作しますが、問題はここに起こるシーン2に遷移するが、ノードのロードではありません。

loadLevelContents(level: 2, world: 1, borderPercentage: 30) 

ポジショニングがうまく行きます問題はすべてが中心点に基づいているか、または相対(0,0)が画面の中央にあるということです。 enter image description here

:私はそれが画面の中央にあるシーン1、のようになり、それを必要としながら

シーン2 左下隅

enter image description here

に中心点を有します

どのようにしてこの相対的な点または中心点を呼び出すかわからず、すべてのSKシーンの画面の中央に変更することができます

+6

それはanchorPointと呼ばれ、それは次のように設定されています... self.anchorPoint =するCGPoint(X:0.5、Y:0.5)はちょうど –

+0

@RonMyschukが解決didMove funcをシーンにアンカーポイントを設定します私の質問、ありがとう。 – Pablo

+0

あなたのゲームで最高の運を手伝ってくれてうれしいです –

答えて

3

あなたが探しているポイントは、anchorPointです。 SpriteKitベースでは左下0,0で右上がSKScenesについてdidMove funcを

self.anchorPoint = CGPoint(x: 0.5, y: 0.5) 

にデフォルト値1は、1.あなたが設定する必要があります中央にそれを置くことで、0.5,0.5のachorPoint (0,0)ですが、anchorPointsを持つSKScenesだけでなく、SKSpriteNodesも同様です。

enter image description here

関連する問題