2011-02-20 3 views
1

게임 센터 인증이 완료되기를 기다리는 것은 매우 오랜 시간이 걸릴 수 있으므로 바람직하지 않습니다. 또한 인증은 게임 실행시뿐만 아니라 빠른 앱 전환을 통해 다시 게임으로 전환 할 때마다 수행됩니다.게임 센터 인증에 매우 오랜 시간이 걸릴 수 있습니다. 어떻게 해결할 수 있을까요?

그러나 인증을 기다리지 않고 문제를 제공합니다 : 당신이 선수가 누구인지 모르는 경우

  • 어떻게 당신이 저장된 게임을 다시 시작합니까? 이상적으로, 저장된 게임은 누가 연주했는지와 연관되어 다른 사람의 게임을 다시 시작하지 않아도됩니다.

  • 플레이어가 누구인지 (플레이어가 Game Center 앱을 통해 변경되었을 수 있음) 모르는 경우 앱을 다시 전환 한 후 어떻게 게임을 다시 시작 하시겠습니까?

  • 액션 게임의 중간에 팝업 수있는 경고의 게임 센터 로그 (가 일시 중지되지 않음)

  • 하는 인증이 완료되기 전에 게임이 끝난 경우? 몇 번의 게임이 끝난 후에 초기 인증이 완료되면 어떻게 될까요? 첫 번째 인증이 앱 스위치 또는 두 번 (그 결과 더 많은 인증을 받음) 후에 완료되면 어떻게 될까요?

이러한 문제를 처리하기위한 합리적인 접근 방법은 무엇입니까?

답변

1

음 ... 나는 처음에만 응용 프로그램의 인증을받습니다. 플레이어 인증을 원할 때 스스로 설정합니다. 플레이어가 처음 인증 될 때 플레이어 별명을 저장하려고 할 수 있습니다. 의미 :

플레이어 애플리케이션 스위치와 물건,하지만이 인증되지 않은 경우
sharedData.myName = [[GKLocalPlayer localPlayer]alias]; 

그래서, 당신은 ..이 선수의 별명에서 데이터를 저장 그래서 플레이어가 마지막으로 인증 될 때, 당신은 당신의 검사에서 의미

게임 센터

에 데이터를 전송 GameCenter 부분 ..

if(!inGame) 
{ 
    [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error){ 
     if(error == nil){ 
    if(sharedData.myName ==nil) 
    { 
    sharedData.myName = [[GKLocalPlayer localPlayer]alias]; 
    } 
    else if([[GKLocalPlayer localPlayer]alias] == sharedData.myName) 
    { 
    [self sendSavedData]; 
    } 
    else if([[GKLocalPlayer localPlayer]alias] != sharedData.myName) 
    { 
    // create new data or look for other saved data which has the same name.. 
    // set sharedData.myName to current player Name.. 
    } 
} 

enter code here 
+0

그래서 한 명의 플레이어 만 장치에서 게임을한다고 가정합니까? – user625569

+0

.. 나는 1 개의 조건을 더 추가했다. – xuanweng