OpenFeint申请过程和体会.doc_第1页
OpenFeint申请过程和体会.doc_第2页
OpenFeint申请过程和体会.doc_第3页
OpenFeint申请过程和体会.doc_第4页
OpenFeint申请过程和体会.doc_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OpenFeint 是很多iPhone游戏开发者都要用到的社区功能,CocoaChina 会员“ljg420811”撰写了完整的 OpenFeint 申请过程和体会,配合以前介绍的 如何在你的应用程序中使用Openfeint,希望能给刚刚接触 OpenFeint 的开发者提供完整的指导。本文共分三个小节,第一小节写的是使用 OpenFeint 的一点小心得。第二小节写的是 OpenFeint 环境的搭建。第三小节写的是 OpenFeint 的注册过程,给予想使用而还没有开始没有使用 OpenFeint 的人提供部分帮助。一、openfeint中的LeaderBoards 和Achievement的一点体会 1.数据提交的格式 最近想向自己 的游戏中添加点openfeint功能,使用的时候发现,openfeint的功能虽然比较多,也比较强大,但是,有些地方还是不太如人意。我游戏中的分 数有一项是float型的数据,可是当我提交的时候,发现openfeint的在线排名只支持整数形式的数据,改变了官方的api提交之后,服务器那边仍 自动转换成了整型的数据。我在论坛上求证了一下,虽然没有结论,但我认为openfeint高分排行榜仅支持整型的数据。 2.数据提交的方法 OFHighScoreService setHighScore:你提交的分数 forLeaderboard:分数项的ID onSuccess:OFDelegate() onFailure:OFDelegate(); /提交高分,如果函数无效,请引入#import OFHighScoreService.h 通过上面那个函数,就可以向服务器提 交数据,其中你要提交的分数,无论是什么类型,最后都会转换成整型的数据,可以参见上一条信息。而分数项ID,则是你在申请LaderBoards的时候 openfeint分配给你的一个数字。后面两个参数,应该不需要改变,我没有尝试过做其他的动作,有兴趣和想法的朋友,可以尝试象selector那 样使用它。 OFAchievementService unlockAchievement: 成就ID onSuccess: OFDelegate() onFailure: OFDelegate();/解锁成就,如果函数无效,请引入#import OFAchievementService.h 这个函数的功能是解锁成就,当你在游戏过程中达到某一个要求时,就可以解锁你在openfeint上预设的成就。 例如: 生存游戏中:if (生存时间 100s ) 调用上面的函数解锁你自己预设的成就; jump游戏中:if ( 高度 10000m ) 调用上面的函数解锁你自己预设的成就; 3.网络对分数提交的影响 网络畅通的情况下,调用上述函数提交分数(最高分数被刷新时) 可以成功,并且解锁成就并不会反复出现解锁提示。好吧,既然这个可以完成我们的要求,那么这里就不是重点。 网络不通的情况下,就会出现一点问题: 在阐明问 题之前,我想先说一下我对openfeint的数据存储的理解或者说感觉。使用penfeint的时候,在documents目录下会生成两个文件,一个 FakeKeyChain.plist,据我观察,这里面存放的就是我们在openfeint里为这个游戏申请的Product Key和Product Secret,而且Secret经过了加密处理。另一个文件则是feint-offline, 这个文件是无法打开的,在windows用记事本打开也是一堆乱码,也许有其他的办法,不过我没有找到。我对于这个文件的用途猜测是,这个文件用来存档玩 家的一些信息,比如玩家名和分数等,这个文件我暂时叫它为“本地隐 藏信息表”吧。 问题来鸟,在没有网络的情况下,取得了一个分数,然后第一次调用分数提交函数,会提示你得 到了一个高分,存储在本地(我感觉就在本地隐藏信息表中), 问题出现了!当你这时连接网络,分数并不会自动提交,而你自己手动提交(比如点击一个按钮,按钮的功能是提交最高分数)也没有任何的效果。 而 在官方文档中有这样一Q&A: Q:what happens to a high score when a player is offline? A:as os openfeint 2.1 high scoreare queued for submission when the player is offline and submitted when next hes online again. Q:if a user says no to using openfeint the first time,is there a way that user can change his or her mind to allow openfeint in the future? A:when you deny openfeint it will prompt you to approve/deny again when you open the dashboard(OpenFeint launchDashboard).it will not prompt you on the next app bootup,or submitting any requests.only when you open the dashboard. 也就是说,提交失败,于是我做了个试验,在有网络的情况下,提交一个分数100,只显示 一次,第二次提交100时,没有提示。然后提交101,有提示,第二次提交101,没有提示。说明了本地隐藏信息表中还存储了一个最高分数的提交次数和提交许可,使用一次提交分数的函数,这些内 容就会改变,只有新提交的分数比原来存储的分数大时,本地隐藏信息 表才会允许你向openfeint正式提交,否则,无效,感觉上和retain与release有点像。也就时说,最高的分数在提交的时 候,没有网络,就等于失败,这里应该算是openfeint的一个小bug吧。也是我遇到问题的所在,没找到什么解决办法,大伙有经验的可以提出来。 用 个简单的图来形容下吧。 无网络-得到新高分-存储在本地-联网后-不自动上传最高分。 顺 便说下成就的提交,没有网络,不可解锁成就,也没有存在本地的提示,联网后,同样也不自动解锁,只有再一次达到条件(方才例子中的if成立)时,才会再次 解锁。 以上,是我的部分openfeint基础使用的经验,也许是我的方法不正确,也许有别的解决办法,我能提供给大家的帮助, 先这么多了。二、 openfeint的设置(2.4.8版) 以下步骤是假设你从没安装过openfeint,如果有,请将以 前老版本的openfeint从机器中删除,并从project中删除所有与openfeint有关的东西,然后,你可以按下面的步骤来做了。 1. 从官网下载一个最新版本的没有解压的openfeint SDK。 2.将openfeint文件夹拖入你的project中。 3. 设置info a.打开project的info,选中build栏,将configuration设置成All configuration b.将Other Linker Flags一项的值设置成 -Objc 区分大小写 c.将Call C+ Default Ctors/Dtors in Objective-c项的选成yes(这一步我没有设置,不知道是什么意思,英文原文如下:Ensure Call C+ Default Ctors/Dtors in Objective-c is checked under the GCC 4.2 - Code Generation section) d.设置一个默认的值GCC_OBJC_CALL_CXX_CDTORS 为 YES(这一步我也没有设置) 4.引入frameworks 需要引入的frameworks 有,Foundation,UIKit,CoreGraphics,QuartCore,Security,SystemConfiguration,libsql3.0 dylie,libz.1.2.3.dylib这些是官方给出需要引入的frameworks,根据帮我搭建工程的前辈说,必须要引入 CoreLocation.framework CFNetwork.framework MapKit.framework 5.必须在你的 .pch 文件中引入import “OpenFeintPrefix.pch” 6.将你所有使用openfeint功能的函数改为 .mm 文件 我能想到的就这些了,还有什么问题,大家可以互相讨论。三、openfeint的注册 openfeint的注册并不难,能看懂 文档的水平基本就可以了,也可以配合翻译软件来弄。 1.打开官网 2.选右上角的 Developers一项,如附图一,跳转到的新界面。 3.点击本页面的右上角的login会进入登陆界面,选择右上角的 sign up进行一个简单注册,如附图二。本页右下角有一个教学的视频,告诉你如何使用openfeint的基础功能。 4.简单注册界面如附图三,填写完成后跳转到一个新的界面(附图四),点击Dive in 进入你自己的openfeint里。 5.进入自己的openfeint了,需要进行一个prepare for submission的申请,这个可以让你的openfeint有效,否则,你只能使用test user 进行测试。在App Home中,可以看到自己的client Id 这个是用来提问用的,以及最重要的Product Key和P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论