2014-06-18 5 views
1

세로 모드에서 0,0의 위치에 SKShapeNode을 만들었습니다. 그러나 그것이 화면에 전혀 나타나지 않는 것 같습니다.SpriteKit 좌표계가 엉망입니다

이 내가 지금

let test = SKShapeNode(rect: CGRectMake(0, 0, 10, 10)) 
test.fillColor = SKColor.blackColor() 
self.addChild(test) 

배경 색상 흰색 사용하고있는 코드는, 그래서 모양 노드는 확실히 화면에 있다면

그러나 0 노드가 화면에 나타납니다 나타납니다? children.count 반환

1 그리고 내가

override func viewWillLayoutSubviews() { 
    super.viewWillLayoutSubviews() 

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { 
     // Configure the view. 
     let skView = self.view as SKView 
     skView.showsFPS = true 
     skView.showsNodeCount = true 

     /* Sprite Kit applies additional optimizations to improve rendering performance */ 
     skView.ignoresSiblingOrder = true 

     /* Set the scale mode to scale to fit the window */ 
     scene.scaleMode = .AspectFill 

     skView.presentScene(scene) 
    } 
} 

SKShapeNode이 그려 장면을 표시하지만, 화면 밖에 방법이 무엇입니까?

편집 1 : 나는 .AspectFit에 스케일 모드를 변경하고,이
이 게임이 세로에서 실행한다고 가정하더라도 게임이 강제 풍경에서 실행되는 일이 무엇인가?

+0

scene.size가 올바른지, 눈금이 가로 또는 세로 크기인지 확인하십시오. 당신이 장면 그래프 로그에서 노드를 계산하고자한다면, 디버그 드로우 노드 수는 화면에 보이는 노드 수만을 계산합니다. children.count – LearnCocos2D

+0

Xcode의 표준 스케일 모드는 .AspectFill이고, children.count는 1을 반환합니다. – junyi00

+0

은 장면처럼 보입니다. 가로 모드를 위해 디자인 된 앱인 경우 – LearnCocos2D

답변

3

@fuzzygoat의 답변은 https://stackoverflow.com/a/24170460/1879382입니다.

GameScene.sks을 열어서 x 및 y 값을 필요한 적절한 값으로 변경하십시오. 나를 위해 iPhone 5S에서 게임을 실행 한 이후에 320 x 568을 사용했습니다.

+0

은 320x568이어야합니다. 한 지점 (2 픽셀)을 넓게 만드는 이유가 없다면 – LearnCocos2D

+0

@fuzzygoat도 320x569라고 말하지만 나 그것을 바꿀 것입니다. – junyi00