关于cocos2dx3.2返回键问题以及ansi转utf8的问题,cocos2dx3.2utf8

  次阅读 来源:互联网(转载协议) 2015-09-28 13:12 我要评论(0)

关于cocos2dx3.2返回键问题以及ansi转utf8的问题,cocos2dx3.2utf8

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

最近在学习的过程中重新整理了一下代码,顺便把cocos2dx从3.0升到了3.2。这里记录一下升级过程中的问题。

之所以只升到3.2是因为后面的版本使用了lua5.2,而我还是更喜欢用5.1,而且能继续使用luajit,另外一个原因是因为cocosstudio,3.2后面的版本就导出成csd格式了,我不是很喜欢这种改变,我还是喜欢直接导出json文件,在lua中加载(其实是不想改代码啦。)。个人认为,cocosstudio正在放弃自己的优势,转而向unity3d靠拢,希望搞一个大而全的工具来开发游戏,这是强制改变用户做游戏的方式。很多C/C++程序员之所以不喜欢unity3d就是因为觉得这不是在编程,而cocos2dx则完全是程序员喜欢的方式。好了,个人见解不吐槽了,下面就说这次遇到的两个问题吧。

第一个是关于返回键的问题,最新编出来的的程序,在windows按退格键正常,但是在android发现按返回键没有反应了。查了一些资料原来是响应的键值改变了,3.0之前是具体看代码,比较坑爹。

--注册返回键

function Layer:listenBackspace()

if self._layer then

local function onKeyReleased(keyCode, event)

--3.0版本之前是KEY_BACKSPACE,3.1之后是KEY_BACK

if keyCode == cc.KeyCode.KEY_BACK then

self:onKeyCallback(keyCode)

end

end

local listener = cc.EventListenerKeyboard:create()

listener:registerScriptHandler(onKeyReleased, cc.Handler.EVENT_KEYBOARD_RELEASED)

local eventDispatcher = self._layer:getEventDispatcher()

eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self._layer)

end

end

第二个问题是中文转码的问题,我之前有一篇博文介绍过。见关于cocos2dx中文转UTF8码的解决方案。最近在我的安卓4.4的手机上,发现转码失败了,中文全部显示一些框框。查了一些资料,原来是因为libicuuc.so库文件里面的函数ucnv_convert_xx的版本变了,具体的版本映射如下:

//android2.1, ucnv_convert_3_8

//android2.2, ucnv_convert_4_2

//android2.3, ucnv_convert_44

//android4.0, ucnv_convert_46

//android4.0, ucnv_convert_46

//android4.1, ucnv_convert_47

//android4.2, ucnv_convert_48

//android4.3, ucnv_convert_50

//android4.4, ucnv_convert_51

知道问题后就好解决了,以后出现这个问题也有经验了,在原文的基础上稍微改一下即可。贴上我写的新接口,这样也方便以后扩展。

bool openIcuuc()

{

void* libFile = dlopen("/system/lib/libicuuc.so", RTLD_LAZY);

if (libFile)

{

char* dll_fx_list[] =

{

"ucnv_convert_3_8",

"ucnv_convert_4_2",

"ucnv_convert_44",

"ucnv_convert_46",

"ucnv_convert_47",

"ucnv_convert_48",

"ucnv_convert_50",

"ucnv_convert_51",

"ucnv_convert_52",

"ucnv_convert_53"

};

for (int i = 0; i < 10; ++i)

{

ucnv_convert = (void (*)(const char *, const char *, char * , int32_t , const char *, int32_t,int32_t*))dlsym(libFile, dll_fx_list[i]);

if (ucnv_convert)

return true;

}

dlclose(libFile);

}

return false;

}

http://www.bkjia.com/Androidjc/971559.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/971559.htmlTechArticle关于cocos2dx3.2返回键问题以及ansi转utf8的问题,cocos2dx3.2utf8 转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 最近在学习的过程中重...

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...