cocos2dx之文字输入
来源:互联网 发布:网络安全问题解决方案 编辑:程序博客网 时间:2024/04/30 11:00
值得一提的是文字输入。正如鼠标对键盘的颠覆,从iPhone开始的触摸屏革命已然将实体键盘逼入了一个尴尬的位置,更多的交互通过触摸屏上直观的手势操作完成,但是文字输入依然是必不可少的,例如当我们需要设定用户名的时候。
在没有实体键盘的触屏手机上,文字输入通过虚拟键盘来实现。不幸的是,CCLayer并没有为我们提供一个简化的封装实现;而幸运的是,在Cocos2d-x中已经存在一个现成的文本框控件CCTextFieldTTF了。尽管这个控件的接口稍微有些复杂,但使用起来并不麻烦。它的外观为屏幕上一块可输入的区域,如同各种平台下的文本框一样,点击后可弹出键盘。
CCTextFieldTTF提供了3个常用的操作接口,具体如下所示:
其中创建CCTextFieldTTF时的第一个参数为提示文本,在文本框中没有输入任何内容时提示用户输入,后面的两个参数分别对应字体和字号。值得注意的是,截至Cocos2d-x 2.0.1版本,CCTextFieldTTF类的工厂函数还在使用旧的命名风格,即它还没有提供"create"风格的工厂函数。
在没有实体键盘的触屏手机上,文字输入通过虚拟键盘来实现。不幸的是,CCLayer并没有为我们提供一个简化的封装实现;而幸运的是,在Cocos2d-x中已经存在一个现成的文本框控件CCTextFieldTTF了。尽管这个控件的接口稍微有些复杂,但使用起来并不麻烦。它的外观为屏幕上一块可输入的区域,如同各种平台下的文本框一样,点击后可弹出键盘。
CCTextFieldTTF提供了3个常用的操作接口,具体如下所示:
const char* getString(void); //获取当前字符串bool attachWithIME(); //激活输入法bool detachWithIME(); //取消激活输入法
这3个方法基本可以满足开发需要了。如果我们在开始场景中添加一个让用户输入用户名的文本框,只需要在StartScene类的初始化代码中添加一个CCTextFieldTTF控件即可。相关代码如下:
CCTextFieldTTF text = CCTextFieldTTF::textFieldWithPlaceHolder( "Input Your Name...", "Arial", 20); text->setPosition(ccp(winSize.width / 2, winSize.height / 2 + 40)); this->addChild(text); text->attachWithIME();//接受键盘输入信息
其中创建CCTextFieldTTF时的第一个参数为提示文本,在文本框中没有输入任何内容时提示用户输入,后面的两个参数分别对应字体和字号。值得注意的是,截至Cocos2d-x 2.0.1版本,CCTextFieldTTF类的工厂函数还在使用旧的命名风格,即它还没有提供"create"风格的工厂函数。
这么做在Windows等含键盘的平台上可以很好地工作,但在手机等移动终端上就有些不足了。移动设备通常没有实体键盘,在不需要输入文字时,游戏的画面可以完整地显示在屏幕之中,然而当需要输入文字时,就会从屏幕下方弹出一个面积很大的虚拟键盘,挡住游戏画面的很大一部分。为了节省屏幕空间,我们采取的做法是在一开始将输入法隐藏,在输入文本框上添加一个空白按钮,在点击按钮时再弹出输入法。
0 0
- cocos2dx之文字输入
- Cocos2dx之文字显示
- cocos2dx 输入处理 之IMEDelegate
- cocos2dx之创建一个输入框
- Cocos2dx之文字菜单和图片菜单的使用
- cocos2dx 2.x EditBox在6s plus下看不到输入文字的解决方案
- cocos2dX 文字的渲染
- cocos2dx 文字渲染
- cocos2dx中的文字显示
- cocos2dx 学习笔记之 EdixBox(输入框)
- cocos2dx之彩色编辑输入框的设计
- jqgrid快速入门之三:单元格输入文字的获取
- cocos2dx文字描边问题解决
- cocos2dx label设置文字间隔
- 提交表单 之 提示文字在输入框内部,提示文字怎么处理?
- WPF 之 实现TextBox输入文字后自动弹出数据(类似百度的输入框)
- 文字输入转换
- 输入框里有文字提示
- 《UNIX环境高级编程》笔记--出错记录
- 第八篇:往事并不如烟-发几张以前公司做的PCTV Dongle照片
- 搜集直方图
- linux下socket编程:I/O模型
- 两种设置php页面编码的方法
- cocos2dx之文字输入
- java(21) - 注解详解
- 很幽默的讲解六种Socket IO模型(转)
- (Math Foundation 笔记)1.实数公理和用公理证明2
- 项目中发送短信--中国网建SMS短信通
- FOR ALL ENTRIES vs DB2 JOIN
- Oracle 11g的密码更新
- CUGOJ 1437 Take Photo
- Oracle SQL的优化