SpriteKit은 게임 점프 캐릭터에 높이 표시기를 추가합니다

이것은 점프 낙서와 유사한 작은 게임이다. 주인공이 끊임없이 에너지 공을 먹고 점프 에너지를 얻어 더 높은 곳으로 점프한다. 그림에서 블랙홀에 부딪히면 걸린다.
게임 디버깅 과정에서 주인공의 높이를 실시간으로 알았으면 좋겠다. 이것은 프로그램원숭이의 동태적인 게임 승패 논리를 판단하는 데 도움이 될 것이다.
당신은 print로 높이를 컨트롤러에 표시할 수 있지만, 이것은 보기에 그리 편리하지 않습니다. 차라리 높이 표시와 게임 주인공 자신을 밀접하게 결합합시다.
SpriteKit의 모든 SKNode 객체와 자식 객체에 아이가 포함될 수 있기 때문에 부모 노드와 함께 이동, 회전, 축소할 수 있습니다. 이것이 바로 우리가 원하는 효과입니다.
우선, 게임 주인공을 만드는 코드 뒤에 다음과 같은 코드를 추가합니다.
// player 
        let label = SKLabelNode(fontNamed: "Copperplate")
        label.horizontalAlignmentMode = .Center
        label.verticalAlignmentMode = .Top
        label.position = CGPoint(x: 0, y: self.size.height/2.0 + 20)
        label.fontSize = 20.0
        label.fontColor = SKColor.whiteColor()
        label.text = "\(self.position.y)"
        label.name = "heightLabel"
        self.addChild(label)

어떤 사람들은 label의 위치가 왜 (0,size.height/2.0+20.0)냐고 묻는다. 왜냐하면 부모 노드의 닻점이 무늬의 중심 위치, 즉 (0.5,0.5)에 있기 때문에 label.position.x=0은 x축이 중심에 있고 y축이 게임 주인공의 꼭대기에서 20점 위로 올라가는 위치를 나타낸다.
마지막으로 GameScene의 업데이트 방법에 다음 줄을 추가하여 실시간으로 배열을 새로 고칩니다.
if let label = playerNode!.childNodeWithName("heightLabel") as? SKLabelNode{
                label.text = "\(Int(playerNode!.position.y))"
            }

Apps를 컴파일하여 실행한 결과를 살펴보겠습니다.

좋은 웹페이지 즐겨찾기