2017-08-29 18 views
2

私は質問があります。正直なところ、私はトピックを研究して数日間過ごしましたが、それはまだ働いていません。 SpriteKitベースのシンプルなゲームがありますSwift 3 Game Centerリーダーボードはスコアの値を保存しません

、スウィフト3.

私はリーダーボードゲームセンターを実装しようとしています。

iTunes Connectは既に作成済みで、テストユーザーがすでに作成しています。

ゲームを開始すると、ユーザーは必要に応じてログインします。作成されたボードを表示するボタンと、ゲームセンターでリーダーボードを開くことができます。

問題は、リーダーボードで得点の値が更新されないことです。

私のゲームのスコアをgamescene.swiftでは、変数「スコア」 に格納されている、私は保存して上書きするための2つの機能があります。

func saveHighscore(gameScore: Int) { 
     if GKLocalPlayer.localPlayer().isAuthenticated { 
     print("\n Success! Sending highscore of \(score) to leaderboard") 
     let scoreReporter = GKScore(leaderboardIdentifier: “MY_ID_THERE”) 
     scoreReporter.value = Int64(gameScore) 
     let scoreArray: [GKScore] = [scoreReporter] 
     GKScore.report(scoreArray, withCompletionHandler: {error -> Void in 
      if error != nil { 
       print("An error has occured: \(String(describing: error))") 
      } 
     }) 
    } 
} 


func overrideHighestScore(gameScore: Int) { 
    UserDefaults.standard.integer(forKey: "highestScore") 
    if gameScore > UserDefaults.standard.integer(forKey: "highestScore") { 
     UserDefaults.standard.set(gameScore, forKey: "highestScore") 
     UserDefaults.standard.synchronize() 
     saveHighscore(gameScore: score) 
     print(score.hashValue) 
    } 
} 

を、私はボタンを

saveHighscore (gameScore: score) 

overrideHighestScore (gameScore: score) 
を押したとき、私は両方の機能を呼び出します

コンソールに出力が正しく表示されます。たとえば、5点を収集すると、出力は次のメッセージになります。

ゲームセンターの変数スコアの値は送信されず、ボードに最初にアクセスしたときにゼロの値が得られます

本当に助けてください。

こんにちは、 ユージン。私はあなたが適切https://itunesconnect.apple.com

でリーダーボードを設定している願っています

+1

私はユージンがいますが、私は今年あな​​たと同じ状況を経験しました。私はリンゴのサポートに連絡し、彼らのためにエラーだったようです。あなたと同じように、リーダーボードは数日後には更新されません。 Apple iTunes Connectにお問い合わせいただくことをお勧めします。彼らはそれを修正することができるはずです。 – sicvayne

答えて

0

はまた、リーダーボードにスコアを保存するためのコードの下に参照する画面


enter image description here


以下を参照してください。

func saveScoreOnGameCenter() 
{ 
    let leaderboardID = 111 
    let sScore = GKScore(leaderboardIdentifier: leaderboardID) 
    sScore.value = Int64(10) 

    GKScore.reportScores([sScore], withCompletionHandler: { (error: NSError?) -> Void in 
     if error != nil { 
      print(error!.localizedDescription) 
     } else { 
      print("Score submitted") 

     } 
    }) 
} 

これが問題を把握するのに役立ちます願っています。

関連する問題