2014-10-19 3 views
1

클래스 메서드 호출에 대한 Swoobie 질문이 있습니다. Sprite Kit를 사용하여 제 아이들을위한 간단한 학습 앱을 만들고 있습니다. 저는 GameScene에 정의 된 전역 변수 scoreCount를 가지고 있는데, 정답을 감지하고 scoreCount를 증가시키는 것과 같은 모든 게임 로직을 수행합니다. GameOverScene도 있습니다. 둘 다 점수 표를 보여줍니다. scoreCount 매개 변수 (GameScene)를 사용하여 점수를 유지합니다. 그러나 Swift and Sprite Kit를 처음 접했을 때 GameViewController에서 점수 레이블을 어떻게 업데이트해야합니까? 그래서 기본적으로 GameScene에서 GameViewController.updateLabels()를 호출하고 싶습니다.신속한 글로벌 함수 호출? 어떻게?

나는 이것이 이상적인 방법이 아니라는 것을 알고 있지만 이것에 대한 귀하의 솔루션 개념을 공유하십시오. 감사!

답변

5

음. 당신이 글로벌를 작성하는 것을 잊지 마세요

GameViewController.yourFunc() 

: 당신의 GameViewController에서 당신은이 코드를 당신의 GameScene에서 전화를 걸려면이

class func yourFunc { 
//your code 
} 

같은 클래스 FUNC에서 FUNC를 변환해야 함수가 있으므로 모든 변수가 전역 변수 여야합니다. 귀하의 GameViewController에서

var label:UILabel = UILabel() 

: (세계)를 레이블

class GameViewController : UIViewController { 
    override func viewDidLoad() { 
    super.viewDidLoad() 

    label.text = "bonjour" // to set the text 
    label.frame = CGRectMake(0, 0, 100, 100)/set the position AND size CGRectMake (x, y, width, heigth) 

    label.textColor = UIColor.redColor() // set your color 
    label.center = CGPointMake(self.view.frame.width/2, self.view.frame.height/2) // set the position from x=0 and y=0 
    self.view.addSubview(label) // add the label to your screen 

나는 당신을 도움이되기를 바랍니다.

+0

이것은 도움이되지만 전 세계 변수로 내 레이블을 소개 할 수 없다는 점에 아직도 걸리고 있습니다. 클래스 바깥으로 라벨을 옮기면 @IBOutlet weak var livesCounter : UILabel! "인스턴스 속성 만 'IBOutlet'이라고 선언 할 수 있습니다. – user3673836

+0

스토리 보드를 사용합니까? – Haox

+0

예, 스토리 보드에 라벨을 만들고 보조 에디터를 사용하여 코드로 드래그했습니다. – user3673836