Cocos2d-x笔记记忆整理Day5

用户输入——触摸输入&加速度计
触摸输入作为移动端特有的输入方式,与PC端的鼠标有着类似却不完全相同的特点。例如,两者均支持点按,拖拽的操作,然而仅鼠标支持悬停效果,仅触摸屏大多支持同时多个触摸点;鼠标通常包含两个功能键从而区分左右键,而触摸屏仅实现了点按操作。
在Cocos2d-x中,对于触摸输入主要提供了如下三种方式:
1.Layer触摸支持:Layer提供了一套现成的触摸实现,只需启用TouchEnable属性即可接收标准触摸事件。需要重载以touches为前缀的响应函数
2.标准触摸事件注册了该事件的所有对象都会平等地接收到触摸事件,并且对于多点触摸,标准触摸事件会同时提供所有的触摸点。
3.带目标的触摸事件注册了这种事件的对象会按照优先级投递,先接收到事件的对象有权吞噬掉此事件,以阻止其他对象接收到此事件。此外,在多个触摸点的情况下,带目标的触摸事件会逐个触摸点分发,也就意味着每一次接收到的触摸事件只包含一个点的信息。
简单的手势识别
由于移动设备通常缺少足够的实体按键来实现一些常用功能,于是可以适当地为游戏添加一些简单的手势操作。
实现上比较简单,只需要在TouchBegan中记下初始手指放到的位置,在TouchEnd中计算手指离开的位置与初始位置的差进而进行判断即可。(也可采用数组来记录多指的同时动作)

除了触摸,移动设备上一个比较重要的输入来源是设备的方向(加速度计),共记录了三个方向的加速度,分别为xyz轴。为了便于开发,Cocos2d-x中将重力加速度(约9.8m/s^2)为一个基本单位。也就是说,当手机平放在桌子上时,x = 0,y = 1,z = 0。在手机正常状态下,xyz轴的加速度之和大约在一个单位左右;而突然动作的时候,加速度将大幅度偏离1;摇动手机的时候,加速度将在某一个或多个方向上出现很大的加速度;当手机失重或下落的过程中,则会加速度变小。根据这些特性,开发者可以为游戏添加有趣的控制效果。具体方法类似上述手势识别,这里不作赘述。


文字输入
Cocos2d-x中文字输入的体验一般,通常可采用一些方法弥补。
栗子如下:
1.创建一个文本框TextFileTTF
2.在文本框之上,设置一个相同大小的“透明”按钮覆盖在文本框之上,按键效果为弹出移动设备的键盘

3.在弹出键盘的同时将场景向上移动若干像素以避免键盘遮挡住文本框。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...