`
hududumo
  • 浏览: 240650 次
文章分类
社区版块
存档分类
最新评论

Cocos2d-x学习笔记(4)- 触摸反馈

 
阅读更多
	对于游戏来说,触摸事件是最重要的游戏方式,基本上所有的游戏都是基于触摸事件完成的,不过触摸事件也是游戏最基础的事件反馈。cocos2d-x基本上沿袭cocos2d的触摸事件处理方式,下面就简单介绍一下。
	一般来说,每一个游戏场景都有一个或几个Layer组成,把场景分成Layer是为了当游戏的元素增多后方便游戏的管理,这样游戏的扩展性也很强,如果单独在一个Scene中处理整个游戏的元素就显得十分冗杂,而且扩展性差了很多。当然有时候一些很简单的界面还是可以不适用Layer直接进行处理的,当然这样做是不推荐的。如果类不是继承自CCLayer的话,要接受和处理触摸事件要很简单。首先要设置这个类可以接收触摸,在类的init()函数中加入SetIsTouchedEnable(true),接着重写触摸事件的处理函数。
		其实是有4个触摸事件函数的
	当手指首次触摸到屏幕时调用的方法:
	-(void) ccTouchesBegan(CCSet *touches,CCEvent *pEvent);
	手指在屏幕上移动时调用的方法:
	-(void) ccTouchesMoved(CCSet *touches,CCEvent *pEvent);
	当手指从屏幕上提起时调用的方法:
	-(void) ccTouchesEnded(CCSet *touches,CCEvent *pEvent);
	当触摸事件被取消时调用的方法(例如在切水果的时候手指滑到屏幕以外):
	-(void) ccTouchesCancelled(CCSet *touches,CCEvent *pEvent);
	-(void) ccTouchesCancelled(CCSet *touches,CCEvent *pEvent);
	ccTouchesCancelled()方法一般不重写,因为一般情况下没什么用,除非游戏的需要。这几个函数的参数分别是触摸的点集和触摸响应事件,CCTouch* touch用于单点触摸,CCSet* touches用于多点触摸,响应事件一般都要从点集中取出点,然后得到对应的屏幕上的坐标,最后转换成OpenGl的坐标,对于多点触摸来说,可以从点集中取出任意一点。
		中间的两步很重要,CCPoint location = touch->locationInView();location = CCDirector::sharedDirector()->convertToGL(location);,这两个函数完成了坐标的转换,游戏中坐标系的概念很重要,特别是到后面接触的游戏类型比较多时,在地图类的游戏中会涉及到NodeSpace以及WorldSpace等概念,总之如果能深入地理解这些概念的意义,在你写游戏过程如果遇到一些奇怪的问题就能很好地解决。
	如果是层的触摸,就要多加一步注册CCTouchDispatcher来让Layer处理Touch事件。
	
	一般来说是在init中写入注册,在dealloc中撤销注册,或者是在OnEnter中注册,在OnExit中撤销。如果想了解具体的细节可以去查阅相关的资料。
	在写切水果游戏的时候就特别需要对触摸事件进行比较深入地处理,这样才能画出比较好看的刀痕,我的刀痕是采用两层刀痕,下面一层是白色的一层,上面是粉红色的一层,限制刀痕的长度,一个8个点为单位连接刀痕,并对刀痕连接的处的比较机械的连接做一些处理,使得转弯的部分更加连贯。不过看到网上有的比较好的方式,就是完全用三角函数来写,哎,数学牛人!要是想要我的源码的话,我可以分享出来,也欢迎大家分享自己的源码,这才是开源的好处嘛!
分享到:
评论

相关推荐

    Cocos2d-x学习笔记

    自己记录的Cocos2d-x学习笔记,希望能够帮助新手,快速入门,掌握cocos2d-x的开发

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-x学习笔记\cocos2d-x学习笔记(17)--简单游戏实例1--双枪手

    cocos2d-x学习笔记\cocos2d-x学习笔记(17)--简单游戏实例1--双枪手

    Cocos2d-x学习笔记——完全掌握C++ API与游戏项目开发.zip

    Cocos2d-x学习笔记——完全掌握C++ API与游戏项目开发.zip

    cocos2d-x-2.1.5

    cocos2d-x-2.1.5

    cocos2d-x事件类

    在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...

    Cocos2d-x高级开发教程

    Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...

    大富翁手机游戏开发实战基于Cocos2d-x3.2引擎

    资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...

    cocos2d-x学习笔记

    自己在学习的时候记得笔记,希望对大家有帮助,如有错误期待指出!

    老G的cocos2d-x学习笔记

    老G的cocos2d-x学习笔记 第一部分:基本图形绘制 第二部分:字符串绘制 第三部分:绘制图片 cocos2d-x学习笔记04:简单动画 cocos2d-x学习笔记06:如何将win32移植到android ....

    cocos2d-x学习笔记(5)-- CCScene场景的切换(带过度效果).rar

    cocos2d-x学习笔记(5)-- CCScene场景的切换(带过度效果).rar

    cocos2d-x-3.2旧版引擎下载

    cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656

    cocos2d-x实战项目

    cocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML文件读取与骨骼动画.rarcocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML...

    Cocos2d-x学习笔记——完全掌握JSAPI与游戏项目开发

    资源名称:Cocos2d-x学习笔记——完全掌握JS API与游戏项目开发资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    Cocos2d-x 3.x游戏开发之旅教程及完整源码下载

    Cocos2d-x 3.x游戏开发之旅教程及完整源码下载,使用最新cocos2d-x-3.14版本,在xcode7.3上已编译通过。 解决相关问题 1、解决源程序在高版本上无法编译问题 2、解决源程序中文注释部分,xcode上显示乱码问题 使用...

    Cocos2D-X游戏开发技术精解

    资源名称:Cocos2D-X游戏开发技术精解内容简介:Cocos2D-X是一款支持多平台的 2D手机游戏引擎,支持iOS、Android、BlackBerry等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 《Cocos2D-X...

    精通COCOS2D-X游戏开发 基础卷_2016.4-P399-13961841.pdf

    精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发

    cocos2d-x实战 c++卷教程及完整源码

    cocos2d-x实战 c++卷教程及完整源码下载,使用最新cocos2d-x-3.14版本,在xcode7.3上已编译通过。 解决相关问题 1、解决源程序在高版本上无法编译问题 2、解决源程序中文注释部分,xcode上显示乱码问题 3、根据书籍...

    cocos2d-x-3.0 类图

    这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...

Global site tag (gtag.js) - Google Analytics