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

简介:
本站文章均为  李华明Himi 原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/android-game/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 0x0500 in -[EAGLView swapBuffers]

就因为这个问题会造成在打包好的图片白块化,实出的机型:Android平台M9,iOS:iphone 4.3.3

关于 这个错误的谈论帖子如下链接:

http://www.cocos2d-x.org/boards/6/topics/7557?r=19039#message-19039

2.   Himi在cocos2dx 1.x版本运行在iOS6中调用GameCenter相关函数,出现如下错误:

(备注:此问题不仅仅使用GameCenter,ios6中其它也会遇到)

解决方案如下:

在调用使用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 。


相关文章
|
2月前
|
XML 编解码 Android开发
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
209 0
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
859 1
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
1027 1
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
329 94
|
10月前
|
编译器 Android开发 开发者
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
Lambda表达式和匿名函数都是Kotlin中强大的特性,帮助开发者编写简洁而高效的代码。理解它们的区别和适用场景,有助于选择最合适的方式来解决问题。希望本文的详细讲解和示例能够帮助你在Kotlin开发中更好地运用这些特性。
266 9
|
存储 编解码 算法
发到朋友圈的图片为什么会变糊?iPhone的live实况图是什么格式的图片?
本文介绍了iPhone Live实况图的格式(.livp)、社交平台图片变糊的原因、图像编码压缩的基本过程(变换、量化、熵编码),以及HEIF格式及其与HEVC的关系。HEIF格式具有体积小、颜色丰富、内容灵活等优势,适用于高效图像存储与传输。
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
449 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
1154 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题

热门文章

最新文章