我目前正在嘗試學習遊戲編程,所以我將從一個簡單的iPhone應用程序開始,以便我能夠學習遊戲編程的流程和組織。現在,我有一個名爲PlayerShip的玩家的班級,而PlayerShip可以有不同的級別(即玩家升級他們的船隻時)。因此,對於每個級別的船舶,班級使用不同的圖像。對於每一級的船舶,我都有不變的值,比如船上的炮塔數量,炮塔的位置以及推進器的數量和推進器在船上的位置(例如,船1級有兩個炮塔和一個推進器)。我的問題是,爲這些船舶存儲和讀取這些數據的最佳方式是什麼?我不想每次啓動一艘船時都要定義它們,因爲那看起來沒有組織性,而且我也不想在發生變化時對其進行硬編碼。我正在考慮使用PLIST文件來存儲所有的值,但我也知道,在閱讀PLIST時,它的全部或全部意味着您必須將整個文件讀入內存,而且我不希望這會影響遊戲的性能。那麼存儲這些靜態信息並在代碼中檢索的最佳途徑是什麼,而不必冒風險?在遊戲中讀取和存儲數據(iPhone)
0
A
回答
1
如果您沒有將您的值硬編碼到類中,則必須從某個外部源(可能會影響性能 - 取決於您如何以及何時執行此操作)讀取它們。就你而言,聽起來像你最好的選擇是加載信息「前期」(例如,當應用程序啓動時)。然後它將一直保留在內存中,直到程序終止。
至於如何存儲數據,你可以考慮尋找到核心數據:
特定您感興趣的將是如何運送你的應用程序預先加載的數據:
http://www.raywenderlich.com/980/core-data-tutorial-how-to-preloadimport-existing-data
0
首先,你必須考慮「......硬編碼,以防止發生變化...」你有變化的問題是,隨着你的應用程序二進制文件的每一個變化,你需要上傳一個新的版本sion到應用程序商店(這包括對應用程序包中plist等的更改)。
有人說你可以選擇從應用程序啓動時從Web服務器下載一個plist(或其他文件,即xml等)這些值。在你的情況下,當初始化你的遊戲並將它們保存在內存中時,最好加載這些值。
+0
當我說變化時,我在想更多,我不想有無組織的代碼,我不得不去尋找硬編碼的值來改變。我希望它能夠從一個地方以一種乾淨的方式拉出來,以便我可以在一箇中心位置進行更改 – Alexander 2010-11-10 04:16:08
相關問題
- 1. Flash遊戲數據存儲
- 2. 遊戲數據存儲
- 3. 在TurnBasedMatch中儲存遊戲數據bytearray
- 4. 數據存儲在遊戲對象
- 5. iPhone遊戲保存
- 6. 存儲一個Facebook用戶的遊戲數據遊戲製作
- 7. 視頻遊戲預訂數據存儲
- 8. 存儲遊戲int數據的類
- 9. 在MMO遊戲中保存數據
- 10. 將遊戲卡數據存儲在單個或多個XML中?
- 11. 用於在遊戲中存儲實體的數據結構
- 12. 在iPhone中存儲數據
- 13. 在鑰匙串中存儲遊戲狀態和分數
- 14. 在iPhone上存儲遊戲數據的最佳方式是什麼?
- 15. 數據存儲髒讀取和刪除
- 16. CGI號猜謎遊戲 - 在可讀寫文件中存儲值
- 17. 我的iPhone遊戲遊戲中心
- 18. 通過遊戲中心分享保存的遊戲數據?
- 19. Libgdx存儲遊戲物品
- 20. 遊戲資源存儲
- 21. 製作遊戲墊和iphone
- 22. Iphone遊戲cocos2d和box2d
- 23. 我應該如何在遊戲中存儲和使用槍支火情數據?
- 24. 客戶端中的移動多人遊戲數據存儲
- 25. 保護C++ RPG遊戲中的存儲數據
- 26. 從數據存儲讀取數據
- 27. Singleton - 從數據存儲中讀取
- 28. 如何在iPhone遊戲中實現遊戲中心
- 29. 在SOAP UI中讀取和存儲數據
- 30. 如何在C中讀取,存儲和刪除xml數據#
是啊,我知道我想加載它在外部我的問題是什麼是最好的選擇。我聽說PLIST可以使用更多的資源。沒有玩過很多我自己的coredata,但我可以看看。我之前使用過SQLite,會不會是一個可行的解決方案? – Alexander 2010-11-10 04:17:12
是的,SQLite將成爲coredata的後盾商店。根據數據的大小和複雜性,數據庫可能會過度殺傷。我想如果它足夠簡單,你可以從文件中讀取它: –
codefinger
2010-11-23 16:04:25