您的位置:首页 > 移动开发 > Cocos引擎

【游戏开发备注之一】关于Cocos2dx_v1.x版本iphone与Android运行出现图片白块、添加GameCenter报错问题及编译Android闪退的解决办法&&CCLOG与CClog的区别

2012-12-06 16:57 1491 查看
本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/game-detail/1035.html

          ☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!

今天备注几个童鞋们可能会遇到的问题:1. 关于Cocos2dx v1.x版本运行在iphone与Android平台出现图片变白块,尺寸一样。图片纯白问题。之前出现此问题原因如下: 1.1 CCSprite与CCNode强转之间的问题造成; 1.2 pvr.ccz的资源大小宽高不是正方形的话(2 的N次幂)解决方案,之前Himi给出方法了,这个问题请看之前的博文:【iOS-cocos2d-X 游戏开发之十一】New CCSprite()带来的错误&使用CCUserDefault及pvr.ccz在Cocos2dx中要注意! 今天讲解另外一个造成此问题的原因: 原因引擎的粒子系统,当使用粒子系统后,控制台给出警告: OpenGL error 0×0500 in -[EAGLView swapBuffers] 就因为这个问题会造成在打包好的图片白块化,实出的机型:Android平台M9,iOS:iphone 4.3.3 关于 这个错误的谈论帖子如下链接:http://www.cocos2d-x.org/boards/6/topics/7557?r=19039#message-190392. Himi在cocos2dx 1.x版本运行在iOS6中调用GameCenter相关函数,出现如下错误: (备注:此问题不仅仅使用GameCenter,ios6中其它也会遇到)
Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES'


解决方案如下:在调用使用GameCenter的 View Controller(报错的 View Controller类)中添加如下三个函数即可:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{

return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight );

}

-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}

- (BOOL)shouldAutorotate
{
return YES;
}


cocos2dx 一般对于ios平台级别的组件进行使用时,都默认写在cocos2dx项目下的ios文件夹下的AppController.h/mm 中的。当然你也可以自己定义mm混编类。 3. 第三个问题就是关于cocos2dx 1.x 版本编译Android 一个造成闪退的原因。对于这个问题出现的种类很多(但是你如果书写代码规范基本没有任何问题),这里Himi给个遇到验证过的问题吧。 Himi 在cocos2dx项目中Xcode书写代码有如下两个类,继承关系如下: HClassA:public CCSprte HClassB:public HClassA如果你强制将HClassA类型强制转给HClassB对象会造成Android闪退的问题!!!!虽然这种父类强转子类在Java中可以行得通,在iOS运行没有问题,但是!当编译到Android的时候就会出现100%闪退的现象。 关于NDK编译到Android后的调试打印CCLOG与CCLog问题这里简单说下:之前很多童鞋问我,为什么使用CCLOG在Android不打印,咳咳、童鞋们可以点击进入CCLOG的定义,它在正式编译后自动取消不打入代码中的,而CCLog则不是,所以我们想在Android进行打印观察,那么请使用CCLog 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐