我已经写了一个简单的游戏,并期待与它集成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