2011-01-26 12 views
2

私はGame Centerを稼働させようとしています。唯一の問題は、投稿されたスコアが意味をなさないということです。これは私のポストのスコアコードです:Game Center投稿の偽のスコア - iPhone

-(IBAction)subScore 
{ 
    { 
     GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"katplay"] autorelease]; 

     scoreReporter.value = gcPost; 
     NSLog(@"posted"); 
     NSLog(gcPost); 

     [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) { 
      if (error != nil) 
      { 
       NSLog(@"failed!!!"); 
       NSLog(gcPost); 
      } 
     }]; 
    } 
} 

だから私はゲームをプレイし、私のスコアを取得し、ログは私がリーダーボードを表示すると= 2500 gcPostが私のスコアは100929392ポイントであることを述べているコンソールを表示します。私はその番号がどこから来たのか分かりません。

何か基本的なものがありませんか?

クリス

+0

'GKScore.value'と' gcPost'の種類は何ですか?あなたはgamecenterからスコアをどのように読み返していますか? – sarnold

+0

GKScore.valueについてはわかりません。 gcPostは "int * gcPost;"です。私はすべてのコードを私に提供したYouTubeチュートリアルを休んでいました。私はgamecenterから得点を取っていません、私はアプリでリーダーボードのウィンドウを起動し、そこにチェックします。 – edhog

答えて

2

私のアプリにGame Centerを実装するだけです。整数をint64_tに変換する必要があります。 Objective-Cという言葉では、LongLongです。あなたはこれを変更することができます

scoreReporter.value = gcPost;

これに:

scoreReporter.value = [[NSNumber numberWithInt:gcPost] longLongValue];

私は強くあなたがApple Documentation on Game Centerを読むことを強くお勧めします。すばやく簡単に読むことができます。ほとんどのコードをそこからコピーすることもできます。

+1

ありがとう、これは働いた!私はAppleの文書を使ってコードをコピーしています。私はちょうど64ビット整数についてあまり知らなかった。 – edhog

0

どのタイプのgcPostですか? GKScore.valueプロパティには、int64_t型の値が必要です。私の推測は、gcPostがどんなタイプであってもうまくいきません。元の型からint64_tへの明示的な変換を試みてください。

+0

私はちょうど "int * gcPost;"としています。私のコードに関する知識は非常に限られていますので、今すぐint64_tに変換します。おかげで、 – edhog

2

gcPostは "int * gcPost"です。確かにこれはちょうど "int gcPost"であるべきですか?ポインタではなく実際の整数が必要です。

関連する問題