2013-03-30 1 views
2

나는 게임을 만드는 중입니다. 나는 시간에 관한 문제를 해결하려고 노력하고있다.오프라인 게임 iphone에서 변경할 수없는 날짜 받기

게이머는 10 분마다 (모든 재생 권한이 종료 된 경우) 평생을 구합니다. (동시에 나는 캔디 크러시와 같은 인앱으로 인생을 팔 것이다). 게임은 오프라인에서 재생할 수 있습니다. 사용자가 앱을 죽이면 시간을 절약하고 저장합니다. 그/그녀가 게임을 열면 현재 시간을 얻고 날짜 빼기를함으로써 삶을줍니다. 여기에 문제가있다.

사용자가 앱을 종료하면 1 시간 후에 시간을 조정하고 게임을 다시 엽니 다 (문제는 계속되고 lifes).

이 문제를 해결할 수있는 방법이 있습니다. 언제든지 사용자가 변경할 수없고 정확한 시간을 검색 할 수있는 시간 소스가 있습니까 (온라인 액세스 없음) 입니다.

ps : iOS 환경에서 게임을 코딩합니다. iOS 관련 답변을 보내 주시면 감사하겠습니다.

+0

나는 해결책이 있는지 알고 싶었습니다. 내가 생각한 가장 좋은 점은 사용자가 앱을 닫는 날짜를 저장하고 닫는 날짜 이전에 열면 해당 방법으로 의심스러운 활동을 감지 할 수 있다는 것입니다. 그러나 그것은 사실 이후에만 작동하고 매우 신뢰할 수 없습니다. –

+0

가장 최근의 시간을 절약하는 것은 방법이지만 여전히 신뢰할 수 없습니다. – meth

+0

예. 이제 그 질문을 발견하고 내 깃발을 꽂았습니다. – meth

답변

0

나는 해결책이 있다고 생각하지 않습니다.

원하는 시간은 상대 시간이므로 일정한 간격이 지난 후에 NSTimer을 실행하는 것에 대해 생각할 수 있지만 앱이 백그라운드에 있거나 죽을 때 실패하거나 죽어 버리기 때문에 작동하지 않습니다. .

궁극적으로 사용자가 오프 장치 저장 방법을 사용하지 않는 한 사용자의 날짜 관리가 사용됩니다. 어떤 절대 시간 방법 (예 : CFAbsoluteTimeGetCurrent) 이건간에 은 사용자가 수정할 수있는 시스템 시계에 종속됩니다.

0

나는 진짜 시계 시간 단위에서 주어진 "단조로운 시간"을 사용할 것입니다. 리눅스에서는 보통 clock_gettime (CLOCK_MONOTONIC, & timespec);을 사용하여이 작업을 수행합니다. mac/ios에서 mach_absolute_time()이 찾고있는 함수라고 생각합니다. 더()

clock_gettime alternative in Mac OS X

Monotonic clock on OSX

CACurrentMediaTime을 읽기 위해이 게시물 중 하나를 참조하는 mach_absolute_time()를 사용합니다. 따라서 사용자가 변경할 수 없기 때문에 가장 친한 친구 여야합니다. 그것을 제외하고 재부팅 (적어도 맥에서) 재설정됩니다. 재부팅 할 때 mach_absolute_time이 재설정되지 않은 것이 가장 좋을 것입니다 ...