首页 > 代码库 > quick-cocos2d-x 3.3rc0 与 2.2.5的区别(三)真机上设置横屏与竖屏
quick-cocos2d-x 3.3rc0 与 2.2.5的区别(三)真机上设置横屏与竖屏
今天把样例编译的真机上,发现是横屏显示,我在模拟器上是竖屏显示的。按照2.2.5版本修改属性后还是没有改变,最后发现3.3rc0有所改动!
2.2.5版本,在真机上显示横屏与竖屏,只需在java层修改android:screenOrientation属性,竖屏:portrait;横屏:landscape;
3.3rc0版本,多了如下代码:
因为这个导致修改android:screenOrientation属性无效了,nativeIsLandScape是个什么东西呢?在java层声明如下:
private static native boolean nativeIsLandScape();
这个函数是C++层实现的,在项目jni/hellolua/main.cpp里面可以看到如下代码:
extern "C" { bool Java_org_cocos2dx_lua_AppActivity_nativeIsLandScape(JNIEnv *env, jobject thisz) { return ConfigParser::getInstance()->isLanscape(); } bool Java_org_cocos2dx_lua_AppActivity_nativeIsDebug(JNIEnv *env, jobject thisz) { #if (COCOS2D_DEBUG > 0) return true; #else return false; #endif } }
在ConfigParser类里面可以看见如下代码:
if (objectInitView.HasMember("isLandscape") && objectInitView["isLandscape"].IsBool()) { _isLandscape = objectInitView["isLandscape"].GetBool(); }
ConfigParser::ConfigParser(void) : _isLandscape(true), _isWindowTop(false), _consolePort(CONSOLE_PORT), _uploadPort(UPLOAD_PORT), _viewName("TimberMan"), _entryfile("src/main.lua"), _initViewSize(WIN_WIDTH, WIN_HEIGHT) { }
bool ConfigParser::isLanscape() { return _isLandscape; }
以上代码可以知道,默认是横屏的;isLandscape这个属性是哪里来的呢?是项目文件夹里config.json里面的。
所以3.3rc0要设置横屏与竖屏需要修改config.json文件里的isLandscape属性。
就写这么多,期待下篇文章!
如有不足之处,请大家指出,一起交流成长!
本文出自 “小狼Zer” 博客,请务必保留此出处http://9151482.blog.51cto.com/9141482/1583361
quick-cocos2d-x 3.3rc0 与 2.2.5的区别(三)真机上设置横屏与竖屏
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。