我已經寫了一個簡單的遊戲,並期待與它集成GameCenter成就。iPhone遊戲開發:成就框架?
我想嘗試以乾淨整潔的方式做到這一點,這很容易添加額外的成就。
當我看到它的成就有以下幾點:
- 觸發「組」(例如,在遊戲結束時,碰撞等)
- 之間的獨立性(例如,你不能得到「十顆金星」,直到你獲得「五顆金星」)。
在此基礎上,我嘗試編寫一個singleton類,它讀入一個完整的成就列表(來自plist),每個成員都按照觸發器類和依賴關係進行分組。這個單例允許其他類註冊@selector()
,就像回調觸發組(例如,「在'game_end'觸發器,調用此函數」)。這些觸發器然後可以在我的遊戲中的定製點處被幹淨地調用。這產生了一個整潔的,幾乎「抽象」的系統,我可以在未來的遊戲中使用。
然後災難;我結束了EXC_BAD_ACCESS
錯誤,我只能假設是因爲我綁定@selector
從非靜態類到一個靜態單例類的回調。錯誤出現在這一行:
GCAchievementsHelper *h = [GCAchievementsHelper sharedInstance];
[h addEventListener:@"game_end" target:self selector:@selector(achievementHandlerGameEnd:)];
我假設這是因爲「自我」(遊戲層)不能傳入靜態單身??
我真的不想在我的代碼周圍散佈大量重複的IF語句來檢查所需的成就條件......如果可能的話!
總之,我的問題是:
有誰知道的成就框架?它不一定是GC/OpenFeint或甚至ObjC兼容 - 甚至僞代碼將是偉大的。
那些無論看起來棒極了 - 感謝的鏈接。雖然兩人看起來都需要遊戲告訴他們成績已經「有」。我仍然需要以抽象的方式找到一種定義成就(無論是在觸發器和依賴/要求方面)的方式。 – Nick
那麼你可以使用SQLite,這個人建議(http://www.reedolsen.com/how-to-develop-achievements-for-iphone-games/)你可以模仿的東西。基本上,你只需跟蹤SQLite的統計數據,然後你可以創建一個觸發器來檢查獲得的成就。 – Goles