2013-04-05 74 views
0

我有一個IOS/cocos2d遊戲與一個php/mysql服務器,其中一個用戶在開始時給5個生命。用戶可以在任何設備上連接,通過他們的Facebook帳戶進行遊戲。IOS遊戲 - 生命再生

每次他們玩遊戲,一個生命就用完了。無論應用是處於活動狀態,辭職還是終止,生活每10分鐘就會重新生成一次。

我知道我可以使用NSTimer或CCDelayTime在應用程序處於活動狀態時「重新生成」生命,但是如何在應用程序最小化或關閉時保持此狀態?我應該在服務器端實現嗎?

回答

1

我應該在服務器端實現這個嗎?

我認爲你應該處理這個服務器端主要有兩個原因:

  1. 你說你的應用程序可以從一個以上的設備上播放。 剩餘的生命數應該與你彈奏的設備相同,所以它需要保存在一個獨特的地方。

  2. 同時保持服務器端的生命數量會阻止您嘗試通過本地更改剩餘生命數來破解您的應用的用戶 。

+1

另外,用戶可以隨時更改其時間在設備上設置==>的用戶將能夠像他想重新生活==>服務器應該持有的真相:) – 2013-04-05 06:56:17

+0

@Davz我會怎麼做這在服務器端?我有一個PHP/MySQL服務器,但不知道如何在後臺運行'計時器'。 – jyek 2013-04-06 05:08:27

+1

回答我自己的問題:我通過在數據庫中創建last_update和time_to_next_update DateTime變量來實現此目的。然後,添加的生命數=(經過時間 - time_to_next_update)/ 10分鐘+1。這種方法避免了運行cronjob的需要。我也通過修改這個類使用計時器在我的應用程序中實現了邏輯:http://stackoverflow.com/questions/3519562/how-do-i-write-a-timer-in-objective-c。代碼對於我的情況非常具體,所以沒有發佈任何內容,但是如果人們在執行此操作時遇到同樣的困難,則很樂意回答任何問題。 – jyek 2013-04-08 08:03:44

1

由於您希望所有設備都具有生命信息,因此您必須將信息存儲在服務器上。如果您只想讓數據在單個設備上持續存在,您可以在應用未處於活動狀態時使用NSUserDefaults