【IOS-COCOS2D-X 游戏开发之十六】配置你的COCOS2DX项目编译后的ANDROID自动使用(-HD)高清图&设置ANDROID自适应屏幕、缩放比例方法!
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/799.html
本篇主要介绍Cocos2dx项目开发过程中或者说项目务必遇到的一些知识点(ps.貌似Himi博客写的都是务必的 :tx: Himi认为写别人没写的才更容易吸引人不是~)
OK,不多说废话,第一个介绍的是修改项目配置让你的Android项目支持自适应屏幕;其实关于Android项目自适应屏幕这个问题,Himi实在不想再多费口舌,一方面因为Himi之前博文有说过,另外一方面现在Android开源缘故造成分辨率泛滥也成必然。大家注意做项目尽可能使用相对位置,别写死坐标,另外一点就是针对流行分辨率做适应就好了,如果你们公司很有必要铺Android市场的量,那么只能一个一个分辨率去搞了=。 = Himi身为Kjava(J2me)一路走过来的Dev来说,我是在是对自适应虐到习惯…..
1. 咳咳,本不想说,回到正题,那么对于Cocos2dx中如何设置项目Android版自适应,其实很easy,直接在编译好的Android项目中如下路径查找:
your Project name/Jni/helloworld/main.cpp
OK,找到main.cpp后双击打开,然后看到如下代码段:
默认值是1.0,缩放2倍,从下面这两张图可以明显看出设置后的区别:(点击放大图片)
为了便于后续讲解更容易理解,那么这里Himi博文讲解使用的两行图片这里先给出,大家先看下:
rect.png 规格: 40*40 | rect-hd.png 规格:80*80
3.下面介绍如何让cocos2dx的Android版项目使用iOS Retina类似@2x的-hd功能也直接使用高清图片,当然cocos2dx引擎默认找的高清图为-hd;但是编译Xcode的cocos2dx项目到Android版后,Android版可不会那么聪明自动使用你的-hd的版图片,所以下面Himi来手把手教你设置;具体步骤如下:
3.1 首先在你的项目下找到 CCEGLView_android.cpp ,双击打开:
找到 void CCEGLView::create(int width, int height) 函数,然后函数内替换成如下代码:
m_fScreenScaleFactor = MIN((float)m_sSizeInPixel.width / m_sSizeInPoint.width, (float)m_sSizeInPixel.height / m_sSizeInPoint.height);
3.2 继续在你的项目下找到CCFileUtils_android.cpp 类,双击打开:
找到 const char* CCFileUtils::fullPathFromRelativePath(const char *pszRelativePath) 函数,然后替换如下内容:
std::string::size_type pos = path.rfind("/") + 1; // the begin index of last part of path std::string::size_type suffixPos = path.rfind(CC_RETINA_DISPLAY_FILENAME_SUFFIX);
pRet- gt;m_sString = path.substr(0, path.rfind(".")) + CC_RETINA_DISPLAY_FILENAME_SUFFIX + path.substr(path.rfind("."), path.length()); if (existFileData(pRet- gt;m_sString.c_str()))
CCLog("cocos2d: FilePath(%s) with suffix(%s) exist, use it.", pRet- gt;m_sString.c_str(), CC_RETINA_DISPLAY_FILENAME_SUFFIX); return pRet- gt;m_sString.c_str();
return CCFileUtils::existFileDataFromZip(s_strResourcePath.c_str(), fullPath.c_str());
bool CCFileUtils::existFileDataFromZip(const char* pszZipFilePath, const char* pszFileName) unzFile pFile = NULL;
3.3 最后记得设置缩放比例的值2.0,那么重新编译你的项目到Android运行则如下图所示:
OK,本篇就到这里,Himi最近感冒,还没吃晚饭,咳咳,先晚饭去了。。。北京最近下雨天气偏凉~大家多注意身体,
相关文章
- [Android Pro] android 4.4 Android原生权限管理:AppOps
- 【黑马Android】(01)android简介/工程目录结构/拨号器/四种点击事件/后台偷偷发短信
- Android开发错误总结
- Android API之android.widget.Filterable
- Android API之android.provider.ContactsContract.Contacts
- 《Gradle权威指南》--Android Gradle高级自定义
- uni-app:ios/android中的nvue和vue页面加载自定义字体(hbuilderx 3.7.3)
- 【IOS-COCOS2D-X 游戏开发之十五】COCOS2DX中响应ANDROID的BACK(返回)与MENU(小房子)事件&&COCOS2DX自动释放粒子内存函数!
- EasyRTMP实现的一套简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)RTMP直播推送库
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- Android Studio中获取SHA1或MD5的方法
- Android Studio 导入的项目编码错误问题
- Android中初始化Codec2的具体流程
- android V2签名三方app预置方法
- Android报错提示:Failed to resolve: com.android.support.constraint:constraint-layout:1.1.3
- Android 仿ios实现app列表图标长按实现抖动效果
- Android 多组RadioGroup的选项互斥
- 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( android 闭包块配置 | AppExtension 扩展类型参考文档 )
- 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )
- 水声通信(传声)于iOS、Android在情景-depth分析(包括一些声通信源)
- Android使用SVG矢量创建很酷的动态效率!
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)
- android电池充电动画,Android 开机充电图标和充电动画效果
- 如何解决Android Studio的import android.support.v7.widget.RecyclerView的RecyclerView标红问题
- Android打开/关闭wifi命令
- Android Studio NDK报错:mips64el-linux-android-strip 找不到