【COCOS2DX-游戏开发之五】添加GameCenter
2013-05-23 14:00
330 查看
注意:在越狱手机上测试GameCenter,可能会出现 This game is not recongnized by Game Center. 此时请用没越狱手机测试
http://hi.baidu.com/qq5292485/blog/item/61c4e60e069c900a6159f374.html
1、cocos2d-x是基于c++代码,而apple提供的api是基于object-c,此时你需要先了解c++中如何调用object-c进行混合编程的,这个可以参考http://www.himigame.com/iphone-cocos2dx/743.html这篇文章,写的很详细,接着参考http://www.himigame.com/iphone-cocos2d/535.html接入gamecenter,但补充一点,就是在游戏中,当需要通过按钮直接显示出排行榜的时候,又该如何实现呢?
查了下苹果的官方文档找到了 哈哈,代码如下:(*前提该类必须要实现GKLeaderboardViewController<GKLeaderboardViewControllerDelegate>)
当关闭的时候需要调用如下方法
请注意在上面的showLeaderboard方法中 由于该类为UIViewController,所以直接再本身添加,如果需要添加到cocos2d-x中呢,可以改为
下面给出官方对于显示成就的代码(将其转换到cocos2d-x跟上面是一样原理了)
http://hi.baidu.com/qq5292485/blog/item/61c4e60e069c900a6159f374.html
1、cocos2d-x是基于c++代码,而apple提供的api是基于object-c,此时你需要先了解c++中如何调用object-c进行混合编程的,这个可以参考http://www.himigame.com/iphone-cocos2dx/743.html这篇文章,写的很详细,接着参考http://www.himigame.com/iphone-cocos2d/535.html接入gamecenter,但补充一点,就是在游戏中,当需要通过按钮直接显示出排行榜的时候,又该如何实现呢?
查了下苹果的官方文档找到了 哈哈,代码如下:(*前提该类必须要实现GKLeaderboardViewController<GKLeaderboardViewControllerDelegate>)
- (void) showLeaderboard { GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; if (leaderboardController != nil) { leaderboardController.leaderboardDelegate = self; [self presentModalViewController: leaderboardController animated: YES]; } }
当关闭的时候需要调用如下方法
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController { [self dismissModalViewControllerAnimated:YES]; }
请注意在上面的showLeaderboard方法中 由于该类为UIViewController,所以直接再本身添加,如果需要添加到cocos2d-x中呢,可以改为
- (void) showLeaderboard { tempVC=[[UIViewControlleralloc] init]; GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewControlleralloc] init]; if (leaderboardController != nil) { UIApplication* clientApp = [UIApplicationsharedApplication]; UIWindow* topWindow = [clientApp keyWindow]; if (!topWindow) { topWindow = [[clientApp windows] objectAtIndex:0]; } [topWindow addSubview:tempVC.view]; leaderboardController.leaderboardDelegate = self; [tempVCpresentModalViewController: leaderboardController animated: YES]; } } -(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController { [tempVCdismissModalViewControllerAnimated:YES];//在iphone上需要设置为NO,才可以继续响应事件(笔者还没有找到其他解决办法) [tempVC.viewremoveFromSuperview]; //为了使排行榜关闭的时候,能够继续响应事件 }
下面给出官方对于显示成就的代码(将其转换到cocos2d-x跟上面是一样原理了)
- (void) showGameCenter { GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init]; if (gameCenterController != nil) { gameCenterController.gameCenterDelegate = self; UIWindow *window = [[UIApplication sharedApplication] keyWindow]; currentGameCenterController = [[UIViewController alloc] init]; [window addSubview:currentGameCenterController.view]; if ([[UIDevice currentDevice].systemVersion floatValue] < 6.0) { [currentGameCenterController presentModalViewController:gameCenterController animated:YES]; } else { [currentGameCenterController presentViewController:gameCenterController animated: YES completion:nil]; } } }关闭GameCenter
- (void) gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController { if(currentGameCenterController !=nil){ if ([[UIDevice currentDevice].systemVersion floatValue] < 6.0) { [currentGameCenterController dismissModalViewControllerAnimated:NO]; } else { [currentGameCenterController dismissViewControllerAnimated:NO completion:nil]; } [currentGameCenterController release]; [currentGameCenterController.view removeFromSuperview]; currentGameCenterController = nil; } }
相关文章推荐
- 【游戏开发备注之一】关于Cocos2dx_v1.x版本iphone与Android运行出现图片白块、添加GameCenter报错问题及编译Android闪退的解决办法&&CCLOG与CClog的区别
- 【COCOS2DX-游戏开发之七】添加启动数字输入法的功能
- 添加cocos2dX场景类模板。可以更快捷的开发游戏。。。
- 利用cocos2dx 3.2开发消灭星星(九)为游戏添加一些特效
- 利用cocos2dx 3.2开发消灭星星(十)为游戏添加音效(项目源码分享)
- 【COCOS2DX-ANDROID-游戏开发之十八】编译android版本之添加预编译宏
- Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发《赵云要格斗》(1) cocos2dx 3.3移植版
- 17、Cocos2dx 3.0游戏开发找小三之内置的常用层:三剑客LayerColor、LayerGradient、Menu
- 【COCOS2DX-ANDROID-游戏开发之二十】停止手打所有cpp文件到android.mk
- 【Android游戏开发之七】(游戏开发中需要的样式)再次剖析游戏开发中对SurfaceView中添加组件方案!
- 【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!
- cocos2dx游戏开发学习笔记(六)之坐标系统
- 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- 使用CoCos2dx-3.4开发一套可以商用的跑酷游戏 之三 初始界面的编写(2)
- 【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- 1、Cocos2dx 3.0游戏开发找小三之前言篇
- 5、Cocos2dx 3.0游戏开发找小三之测试样例简介及小结
- 【iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Android导入打包运行即可!
- cocos2dx游戏--欢欢英雄传说--添加触摸响应