2017-04-04 1 views
2

간단한 2 차원 게임으로 작업 중이며 레벨 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) 

:

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

위치 결정은 잘 간다 그러나 문제는 모든 것이 중심점 인 에 따라 또는 상대 (0,0)이 화면 중간에 있다는 것입니다. enter image description here

: 나는 화면의 중간에 장면 하나처럼 될 필요하지만

장면 2는 왼쪽 아래

enter image description here

의 중심점을 가지고

모든 SKScene에 대해이 상대 점 또는 중심점을 무엇이 호출되는지 명확하지 않은 채로 화면 가운데로 어떻게 변경할 수 있습니까?

+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