수색…


GameCenter 리더 보드

선수 과목 :

  1. Apple 개발자 계정
  2. iTunesConnect가 설치된 GameCenter 리더 보드 설치

GameCenter 리더 보드 설정 :

  1. iTunesConnect에 로그인 하십시오.
  2. 내 Apps로 이동하십시오. 프로젝트 용 앱을 만든 다음 기능으로 이동하십시오.
  3. Game Center를 클릭하십시오.
  4. 리더 보드 옆에있는 더하기 기호를 클릭하십시오.
  5. 리더 보드 유형에 대해 단일 리더 보드 를 선택하십시오.
  6. 참조 할 수있는 리더 보드 참조 이름 을 만듭니다.
  7. 점수를보고 할 때 앱이 참조 할 리더 보드 ID 를 만듭니다.
  8. 점수 형식을 정수 로 설정하십시오.
  9. 점수 제출은 최고 점수 가 될 것입니다.
  10. 언어 추가를 클릭하고 항목을 채 웁니다.

자신이 만든 LeaderboardID 를 복사하고 Xcode로 향합니다.

Xcode로 작업하기

우리가 작업 할 4 가지 기능이 있습니다.

  1. 프레임 워크 가져 오기 및 프로토콜 설정

  2. 사용자가 GameCenter에 로그인했는지 확인하기

  3. 점수를 GameCenter에보고

  4. 리더 보드보기

  5. GKGameCenterControllerDelegate 가져 오기 가져 import GameKit 프로토콜 GKGameCenterControllerDelegate

  6. 이제 사용자가 GameCenter에 로그인했는지 확인하려고합니다.

func authenticateLocalPlayer() {
        
        let localPlayer = GKLocalPlayer.localPlayer()
        localPlayer.authenticateHandler = { (viewController, error) -> Void in
            
            if viewController != nil {
                //If the user is not signed in to GameCenter, we make them sign in
                let vc:UIViewController = self.view!.window!.rootViewController!
                vc.presentViewController(viewController!, animated: true, completion: nil)
                
            } else {
                
                //Do something here if you want
            }
        }
    }
  1. 이제 사용자가 앱을 사용하고 갑자기 사용자가 새로운 높은 점수를 얻었을 때 우리는 아래 함수를 호출하여 최고 점수를보고합니다.

아래 함수는 2 개의 매개 변수를 포함합니다.

Identifier 문자열로 정의하고 iTunesConnect에서 만든 당신의 leaderboardID를 입력하는 데 사용됩니다.

score 사용자됩니다 int로 정의된다 iTunesConnect에 제출 점수

func saveHighScore(identifier:String, score:Int) {
        
        if GKLocalPlayer.localPlayer().authenticated {
            
            let scoreReporter = GKScore(leaderboardIdentifier: identifier)
            
            scoreReporter.value = Int64(score)
            
            let scoreArray:[GKScore] = [scoreReporter]
            
            GKScore.reportScores(scoreArray, withCompletionHandler: {
                error -> Void in
                
                if error != nil {
                    print("Error")
                } else {
                    
                    
                }
            })
        }
    }
  1. 이제 사용자가 리더 보드를보고 싶다면 아래 함수를 호출하십시오.
//This function will show GameCenter leaderboards and Achievements if you call this function.
    func showGameCenter() {
        
        let gameCenterViewController = GKGameCenterViewController()
        gameCenterViewController.gameCenterDelegate = self
        
        let vc:UIViewController = self.view!.window!.rootViewController!
        vc.presentViewController(gameCenterViewController, animated: true, completion:nil)
        
    }
    
    //This function closes gameCenter after showing.
    func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
        
        gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
        self.gameCenterAchievements.removeAll()
        
    }


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow