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

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学习笔记——完全掌握C++ API与游戏项目开发.zip

    本学习笔记旨在帮助开发者全面掌握Cocos2d-x的C++ API以及游戏项目的开发流程。 一、Cocos2d-x框架基础 Cocos2d-x是Cocos2d-x系列的C++版本,它提供了丰富的图形绘制、动画制作、音频播放、物理引擎等功能。Cocos2d...

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

    《cocos2d-x学习笔记(17)--简单游戏实例1--双枪手》 cocos2d-x是一款跨平台的2D游戏开发框架,基于C++,支持iOS、Android、Windows等多个操作系统。本笔记主要讲解如何使用cocos2d-x创建一个简单的双枪手游戏实例,...

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

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    地球人己阻止不了程序猿们学习cocos2d-x了-学习笔记04 .源码

    《Cocos2d-x游戏开发:深入学习笔记04源码解析》 Cocos2d-x,作为一款跨平台的游戏开发框架,深受广大程序猿们的喜爱。它支持使用C++编写代码,同时提供了Lua和JavaScript的绑定,使得游戏开发既高效又灵活。本篇将...

    Cocos2D-X开发学习笔记-触屏事件使用示例

    本学习笔记将深入探讨如何在Cocos2D-X中处理触屏事件,让游戏能够响应用户的触摸操作。 首先,我们要了解Cocos2D-X中的触摸事件处理机制。在Cocos2D-X中,触屏事件主要通过`Touch`类和`TouchEvent`类来实现。`Touch...

    Cocos2D-X2.2.3学习笔记5(UI系统)

    本篇学习笔记将深入探讨Cocos2D-X 2.2.3中的UI系统,帮助你掌握如何高效地利用这一功能。 首先,UI系统的核心组件是`CCMenuItem`,它是所有UI元素的基础,如菜单项、按钮等。你可以通过继承`CCMenuItem`并实现其...

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

    总结起来,cocos2d-x学习笔记中的“双枪手”游戏实例展示了如何使用cocos2d-x框架进行游戏开发,包括精灵的创建、触摸事件的处理、动作的实现、碰撞检测以及状态管理等关键知识点。通过这个实例,开发者可以深入理解...

    cocos2d-x学习笔记(10)--touchEvent.rar

    本学习笔记将深入探讨cocos2d-x中的触摸事件处理机制,以及如何在项目中有效地利用它们。 首先,cocos2d-x是一个跨平台的2D游戏开发框架,它支持多种操作系统,包括iOS、Android、Windows等。在这些平台上,触摸...

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

    【cocos2d-x学习笔记(17)--简单游戏实例1--双枪手】 cocos2d-x是一款基于C++的开源游戏开发框架,广泛应用于2D游戏、UI界面和实时渲染场景。本笔记将围绕如何使用cocos2d-x构建一个简单的双枪手游戏实例进行深入...

    Cocos2D-X2.2.3学习笔记6(UI系统)

    本篇笔记将深入探讨Cocos2D-X中的UI组件和功能,帮助你更好地理解和使用这个版本的UI系统。 1. **CCMenu与CCMenuItem** CCMenu是Cocos2D-X中用于创建菜单的类,它包含一组CCMenuItem对象。CCMenuItem是菜单项的...

    Cocos2d-android-1学习笔记

    这个“Cocos2d-android-1学习笔记”正是针对初学者或者正在深入学习Cocos2d-x在Android平台应用的开发者所准备的资料。 首先,笔记可能会涵盖Cocos2d-x的安装与环境配置,这包括下载源码、设置NDK路径、配置Android...

    cocos2d-x demo笔记二

    《cocos2d-x demo笔记二:初探游戏开发实战》 在深入探讨cocos2d-x游戏开发之前,我们先来理解一下这个框架的基本概念。Cocos2d-x是一款跨平台的游戏开发框架,它基于C++,并支持Objective-C和Python等语言,广泛...

    Cocos2D-X开发学习笔记-渲染框架之图形的绘制

    - Cocos2D-X提供了事件系统,可以监听触摸、键盘、鼠标等输入事件,进行交互式图形设计。 8. **摄像机**: - `Camera`类允许你控制游戏视口的移动和缩放,实现类似3D视角的效果。 9. **性能优化**: - 清理不再...

    cocos2d-x学习笔记(15)--地图的使用(TMX).rar

    在cocos2d-x游戏开发框架中,地图的使用是一个重要的环节,特别是在创建2D游戏时。本笔记将深入探讨如何利用TMX(Tiled Map eXtension)格式来管理游戏地图。TMX是一种XML格式,专为2D游戏设计,支持层、对象组、...

    cocos2d-x学习笔记(8)--progress(进度条) .rar

    本学习笔记将深入探讨如何在cocos2d-x框架下创建和使用进度条。首先,我们要了解cocos2d-x的核心概念,这是一个基于C++的开源跨平台2D游戏引擎,支持iOS、Android、Windows等多个平台。 1. **创建进度条**: 在cocos...

    Cocos2D-X开发学习笔记-滚动背景地图的使用示例

    这个“Cocos2D-X开发学习笔记-滚动背景地图的使用示例”旨在帮助开发者掌握如何在Cocos2D-X中实现动态的背景滚动效果,这在许多2D游戏中是非常常见的一个功能。 首先,滚动背景地图是通过模拟视窗移动来实现的,...

    Cocos2D-X开发学习笔记-贴图地图类的使用示例

    Cocos2D-X是一款强大的跨平台游戏开发框架,尤其适合2D游戏的制作。它采用C++编写,但同时也提供了Lua和JavaScript的绑定,让开发者可以选择自己熟悉的语言进行开发。在Cocos2D-X中,贴图地图类是用于创建和管理基于...

    Cocos2D-X2.2.3学习笔记7(事件队列之触屏事件

    在本篇学习笔记中,我们将深入探讨Cocos2D-X中的事件队列以及如何处理触屏事件。 1. 事件处理系统 Cocos2D-X使用基于事件驱动的体系结构,这意味着它有一个事件队列来管理所有的用户输入和系统事件。当一个事件发生...

    ios游戏开发之cocos2d-oc笔记

    本笔记将深入探讨cocos2d-oc的核心概念、关键特性和实际应用,帮助开发者从零开始掌握这一强大的游戏引擎。 一、cocos2d-oc简介 cocos2d-oc是基于Objective-C的Cocos2d引擎版本,它提供了丰富的图形绘制、动画制作...

    Cocos2D-X2.2.3学习笔记15(回调动作/动画/加速度)

    在Cocos2D-X2.2.3这个版本中,我们常常会遇到游戏开发中的核心概念,如回调动作、动画以及设备的加速度感应。这些是构建动态且交互性强的游戏的关键元素。以下是对这些概念的详细阐述: 1. **回调动作(Callback ...

Global site tag (gtag.js) - Google Analytics