2016-09-07 2 views
0

나는 간단한 2D 플레이를 개발 중이고 죽인 모든 적의 카운터를 구현하고 게임이 끝날 때까지 디스플레이에 계속 표시하려고합니다.삽입 카운터의 적을 죽이기

어떻게하면됩니까? 나는 7.3.1

내 적 코드는 엑스 코드를 사용하고 있습니다 : 그것은 매우 쉽게로

func frecciaInCollisioneConNemico(freccia:SKSpriteNode, nemico:SKSpriteNode) { 
    print("Freccia ha colpito un nemico") 
    freccia.removeFromParent() 
    nemico.removeFromParent() 

    nemiciDistrutti += 1 
    print("hai distrutto \(nemiciDistrutti) nemici") 

    if (nemiciDistrutti >= 20) { 
     let rivela = SKTransition.flipHorizontalWithDuration(0.5) 
     let gameOverScene = GameOverScene(size: self.size, vinto: true) 
     self.view?.presentScene(gameOverScene, transition: rivela) 
    } 
} 
+2

2013 년 질문은 어떻습니까? – Wain

+0

나는 이것이 지역 사회의 도움없이 해결할 수있는 간단한 문제이므로 아무도하지 않기를 바랍니다. 새로운 Sprite Kit 프로젝트를 시작하십시오.이 프로젝트는 텍스트를 장면에 표시하는 방법을 알려줍니다. nemiciDistrutti가 적을 죽일 카운터라고 가정합니다. 2를 함께 넣으면 답을 얻을 수 있습니다. – Knight0fDragon

+0

당신과 닮았습니다. _did_ 질문에 답하십시오. – 0x141E

답변

1

당신은 스스로이 질문에 대답 할 수 있어야한다.

이 당신의 죽음 기능을 사용하면 텍스트 만 업데이트에서보다 레이블

class GameScene: SKScene { 

    let enemiesKilledLabel = SKLabelNode(fontNamed: "HelveticaNeue") 

    override func didMoveToView(view: SKView) { 
     loadEnemiesKilledLabel() 
    } 

    private func loadEnemiesKilledLabel() { 
     enemiesKilledLabel.position = ... 
     enemiesKilledLabel.text = "0" 
     ... 
     addChild(enemiesKilledLabel) 
    } 
} 

을 만듭니다. 당신이 선택적 항목에 걸릴 당신의 충돌 방법을 변경해야합니다 팁으로

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html

여기에 대해

이것은 문자열 보간이라고
... 
nemiciDistrutti += 1 

enemiesKilledLabel.text = "\(nemiciDistrutti)" // update text 

, 당신은 자세한 내용을보실 수 있습니다. 여러 개의 신체 부위가 충돌하여 1 개의 충돌이 여러 개의 연락처를 호출하는 경우가있을 수 있습니다. 코드에서이를 고려하지 않으므로 frecciaInCollisioneConNemico가 여러 번 빠르게 연속적으로 호출되면 충돌이 발생할 수 있습니다. 이

func frecciaInCollisioneConNemico(freccia: SKSpriteNode?, nemico: SKSpriteNode?) { 

    guard let freccia = freccia, nemico = nemico else { return } 

    freccia.removeFromParent() 
    nemico.removeFromParent() 
    ... 
} 

변경이 마지막으로 당신이 영어 만에 코드를 작성하려고 추천 할 것입니다.

희망 하시겠습니까?

+0

그는 그렇지 않습니다. 장면 변경은 카운터가 20에 도달 할 때까지는 발생하지 않습니다. 그의 설명에서 그는 "... 죽은 모든 적을위한 카운터를 구현하고 게임이 끝날 때까지 디스플레이에 계속 표시하려고합니다."라고 말합니다. – crashoverride777

+0

걱정 말고 ..... – crashoverride777

+0

안녕하세요, 가능한 한 빨리 "crashoverride777"설명을 시도하겠습니다. 다음번에 응답 해 주셔서 감사합니다. 전적으로 영어로 작성합니다. "Knight0fDragon"의 종류 답장에 대해서만이 질문을하면 인터넷에서 솔루션을 찾을 수 없기 때문에 초보자, 어쩌면 당신은 절대적인 천재이며 아무도 배운 사람이 없다고 말합니다. 나를 도운 사람들에게 다시 한번 감사드립니다. – Jollyvideos