中国法律网
法律通行证: 用户名: 密码:  注册
律师加盟热线:400-8919-913   律信通 律信通  
律师
公众 咨询 贴吧
律信通 案件委托
频道 房产 婚姻 交通事故 保险 建设工程 劳动
留学
公司 合同 刑事辩护 医疗 知识产权 工商
新闻 宽频 文书 常识 案例
法规 专题 杂志 百科 论文
查找全国各地律师: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 点击各城市名拼音首字母查找律师 公众找律师,信赖律信通!律师做宣传,首选律信通!
当前位置: 主页 > 法律专题2 > 申请的格式 >

【iOS开发必备指南合集】申请企业级IDP、真机调试、游戏接入Game(5)

时间:2013-08-15 00:08来源:互联网 作者:admin 点击:
在“GKAchievementHandler”类中找到“notifyAchievement”,更新为: - (void)notifyAchievement:(GKAchievementDescription *)achievement {GKAchievementNotification *notification = [[GKAchievementNotificat

在“GKAchievementHandler”类中找到“notifyAchievement”,更新为:

- (void)notifyAchievement:(GKAchievementDescription *)achievement { GKAchievementNotification *notification = [[GKAchievementNotification alloc] initWithAchievementDescription:achievement]; notification.frame = kGKAchievementFrameStart; notification.handlerDelegate = self; //Adjusting rotation. if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft) { notification.transform = CGAffineTransformRotate(notification.transform, degreesToRadian(-90)); } else { notification.transform = CGAffineTransformRotate(notification.transform, degreesToRadian(90)); } [_queue addObject:notification]; if ([_queue count] == 1) { [self displayNotification:notification]; } }

截图如下:

 

OpenFeint 是很多iPhone游戏开发者都要用到的社区功能;

一、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 he’s 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 nextappbootup,or submitting any requests.only when you open the dashboard.

也就是说,提交失败,于是我做了个试验,在有网络的情况下,提交一个分数100,只显示 一次,第二次提交100时,没有提示。然后提交101,有提示,第二次提交101,没有提示。说明了本地隐藏信息表中还存储了一个最高分数的提交次数和提交许可,使用一次提交分数的函数,这些内 容就会改变,只有新提交的分数比原来存储的分数大时,本地隐藏信息 表才会允许你向openfeint正式提交,否则,无效,感觉上和retain与release有点像。也就时说,最高的分数在提交的时 候,没有网络,就等于失败,这里应该算是openfeint的一个小bug吧。也是我遇到问题的所在,没找到什么解决办法,大伙有经验的可以提出来。

用 个简单的图来形容下吧。
无网络->得到新高分->存储在本地->联网后->不自动上传最高分。

顺 便说下成就的提交,没有网络,不可解锁成就,也没有存在本地的提示,联网后,同样也不自动解锁,只有再一次达到条件(方才例子中的if成立)时,才会再次 解锁。

以上,是我的部分openfeint基础使用的经验,也许是我的方法不正确,也许有别的解决办法,我能提供给大家的帮助, 先这么多了。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片
栏目列表
推荐内容
中国法律网 版权所有 邮箱:service@5Law.cn 建议使用:1024x768分辨率,16位以上颜色 | 京ICP备2023040428号-1联系我们 有事点这里    [切换城市▲] 公司法
400-8919-913 工作日:9:00-18:00
周 六:9:00-12:00

法律咨询5分钟内回复
请用微信扫描二维码
关闭

关注网站CEO微信,与CEO对话