2016-12-06 13 views
3

最近、私はCocos2dx-luaに基づくモバイルオフラインゲームに取り組んでいます。Cocos2dxに基づくオフラインゲームのタイムキティを防ぐ方法は?

Google PlayでGameGuardianと呼ばれる速度の設定が可能なアプリが見つかりました。アプリはgettimeofday()の方法をlibc.soに変更することがあります。私はos.time()SystemClock.elapsedRealtime()など多くのAPIを試しましたが、すべて失敗しました。

誰かが私にアプリの効果を避ける方法を教えていただけますか?

答えて

2

唯一の確実な方法は、ゲームのサーバーに連絡して時間を確保することです。多くのアンドロイドゲームがそうしています。 「バトルキャッツ」は一例です。
アプリが起動するとすぐに時間の有効性を確認することができます。利用可能な接続がない場合、許可された時間だけリソースが生成されるようにすることができます。例えば、最後に確認された時刻から1時間以内の値。

その他のアイデアは、現在のfpsをチェックしている可能性があります。ハードウェアのスピードアップができないため、VSyncが有効になっているときとほぼ同じ時間にフレームがレンダリングされます。 1フレームのレンダリングに必要な時間よりもかなり長い時間がかかることがわかった場合、それが多くのフレームで発生した場合は、可能性を秘めている可能性があります。しかし、これは安定したソリューションではありません。通常、あなたのfpsが弱いデバイスに落ちないようにしなければならないし、ゲームが実行されていない間に費やされた時間については何も教えてくれないからです。

最後に保存された未確認時間から約1時間(ユーザーがDSTを調整する場合など)に時間が戻ってきた場合、極端なケースでアプリケーションの状態を完全に消去することがあります。

しかし、一般的にオフラインゲームを時間の操作から完全に保護することはできません。

+0

私はあなたの意見に同意します。現行のfpsを確認することは現実的ではありますが、この問題を解決するには完全な方法ではありません。ありがとうございました。 –

関連する問題