笨木头  2013-11-19 08:40     Cocos2d-x,Cocos2d-x2.0     阅读(26287)     评论(29)
转载请注明,原文地址: http://www.benmutou.com/archives/746
文章来源:笨木头与游戏开发
笨木头花心贡献,啥?花心?不呢,是用心~

转载请注明,原文地址:http://www.benmutou.com/archives/746

正文:

 

1. 问题

关于Cocos2d-xAndroid上的输入框,我忍了好久了,一直没去折腾它,觉得无关紧要。(小若:等等,你倒底想说什么?)

我想说的是,默认情况下,我们在Android上打开的输入框是这样的:



(小若:很好啊,完美~

 

才怪啊~!我本来也以为没什么,我以为正常人都会在输入完之后点击那个回车按钮。

结果,我的游戏玩家有很大一部分都会在输入完之后点击返回键~返回键!于是他们就永远都输入不了内容了,于是我就这样失去了一个又一个用户了。

 

2.解决方案

没关系,我可是Android手游出身的,输入框什么的我可是折腾过的(各种炫耀~)。

要解决这个问题,很简单,Cocos2d-x移植到Android时,是有一堆Java文件的(org.cocos2dx.lib记得吧?),我们找到Cocos2dxEditBoxDialog.java文件,接下来,很重要的一步,千万不要做错了:

打、开、它~

 

嗯,然后就没什么重要的了,在181,找到下面这段代码:

this.mInputEditText.setImeOptions(oldImeOptions | EditorInfo.IME_FLAG_NO_EXTRACT_UI);

 

把它改成下面的样子:

this.mInputEditText.setImeOptions(oldImeOptions | EditorInfo.IME_ACTION_GO);

 

3.测试

然后clean一下项目,好让这些Java文件重新编译,最后,再次运行游戏,打开输入框,效果如下:



 

这才是我想要的,我想,这样的话,正常人在输入完内容之后都会点【完成】按钮了吧?

虽然这么做会让输入框变成全屏,用策划的思维来考虑的话,就是“让玩家的视觉完全脱离了游戏”,这是全屏的弊端。

 

不过,自己做取舍吧,反正我会选择全屏。因为,曾经有玩家因为输入不了内容而给了我游戏一个差评~!
29 条评论
  • 小强 2016-11-11 11:28:00

    为毛我移植到android上一打开就停止运行...
    0回复
  • 贺琦 2016-05-03 17:37:37

    有一个问题欸 如果是用的textfield的话 不改那句话 就是弹出的第二种,但是第二种的bug 太多 我需要用回第一种 要怎么改
    0回复
    • 博主 糟糕_树叶的mut 2016-05-04 08:01:24

      textfield我没玩过咯,你试试按照这个思路来,因为最终输入框就是Android的输入框控件。
      0回复
      • 贺琦 2016-05-04 11:40:48

        我将那个textfield重构成了editbox 突然发现 editbox没有添加点击事件 我这个怎么写啊 我没用过editbox
        0回复
  • 冰释的火焰 2016-01-19 11:40:43

    木头大神,那关于textfield的怎么设置让他半屏显示呢?
    0回复
    • 博主 糟糕_树叶的mut 2016-01-20 08:24:13

      没研究过啊,如果cocos没有自带的api去控制,那就只能去折腾手机端的代码了
      0回复
      • 冰释的火焰 2016-01-21 14:22:05

        看了木头大神的文章,感觉需要学得东西还很多啊,手机端的似乎给textfield控制的东西一点也不多,关于Editbox的就先对很多。那麻烦了哟,我再去研究研究
        0回复
        • 贺琦 2016-05-04 11:35:27

          你知道怎么让textfield半屏显示啊?
          0回复
          • 冰释的火焰 2016-05-16 17:35:13

            O。O我还是不晓得,所用的的editbox
            0回复
      • 贺琦 2016-05-03 17:50:51

        大牛牛 帮帮忙
        0回复
  • MITI 2014-09-14 22:12:07

    输入框是用textfield还是editbox
    0回复
    • 博主 糟糕_树叶的mut 2014-09-15 08:59:39

      EditBox
      0回复
  • 罗小兵 2014-05-13 17:22:58

    哦哦~
    0回复
  • 罗小兵 2014-05-13 15:47:11

    貌似竖屏的游戏,使用this.mInputEditText.setImeOptions(oldImeOptions | EditorInfo.IME_ACTION_GO);没效果,求破解~
    0回复
    • 博主 糟糕_树叶的mut 2014-05-13 16:32:03

      竖屏没试过,你换其他枚举试试
      0回复
  • 教育和交换机 2014-05-07 20:57:17

    请问怎么创建动画的plist文件,就是用3.0去支持plist创建动画,我买了书,书上的array已经不能用了,单独创建帧的,可以实现,就是搞不懂plist文件的,求救!!!!!
    0回复
    • 博主 糟糕_树叶的mut 2014-05-07 21:49:41

      不是很明白你的意思,我猜你是问CCArray::createWithContentsOfFile在3.0里的替代方式吧?你可以用FileUtils::getInstance()->getValueVectorFromFile,具体你可以看看官方Demo关于这个函数的使用(或者看看API)也可以尝试用Cocostudio的动画编辑器~
      0回复
  • 爱没那么容易 2013-12-25 13:51:43

    设置returnType就行了 不用修改代码的吧
    0回复
    • 博主 糟糕_树叶的mut 2013-12-25 17:59:59

      直接设置是没有效果的,还是不能全屏
      0回复
  • Oo幻想oO 2013-12-11 16:26:51

    对啊,那回车符怎么办,我也是搜狗输入法……不能输入回车符的话,聊天信息不就全都一段上了么……打算统一用GO字样,这样会有转到字样,这都不按我就没有办法了说……
    0回复
    • 博主 糟糕_树叶的mut 2013-12-11 16:43:24

      那倒不知道,手游聊天也要回车符?一般都是一连串的输的吧,又不是写文章 不呢,有不少玩家是习惯了输入完之后直接按手机返回键的(特别是在创建角色,输入名字的时候),所以,嘿嘿
      0回复
  • Oo幻想oO 2013-12-11 16:17:21

    测试了下,1,2,3都是回车符号4是搜索字样5是转到字样目测用转到字样会比较好,最清晰,可是回车去哪了,晕死……木有ios测试啊……
    0回复
    • 博主 糟糕_树叶的mut 2013-12-11 16:19:49

      IOS我就不管了,短期内都不会关注IOS市场~
      0回复
发表评论
粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发