上一章节中介绍了,如何利用两种方式对用户触屏进行监听,那么今天要重点讲解一个问题;
要讲的问题主要是在使用注册监听(事件分配方式监听触屏)中的问题,上一章节中说过,此种方式首先要注册:如下代码:
-
- [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
那么如果多个注册监听的话,可以根据优先级(priority)参数进行设置,此参数的值越大,优先级越低,假设有XX与YY注册了监听,如果XX优先级>YY, 那么首先会进入XX的监听函数;
使用上面的方式进行监听的话,会进行监听以下这几个事件:
- - (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
- {
- return NO;
- }
-
- - (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
- {
- }
-
- - (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
- {
-
- }
如果XX中的ccTouchBegan函数中返回Yes的话,就不会响应其他监听的(YY)中重写的监听函数;这个上一章节中介绍过;但是要说的也正是这里,如果你想要XX与YY都监听事件,那么两个都可以在ccTouchBegan中返回NO,但是如果你想在处理YY或者XX中的ccTouchMoved移动事件函数中的话,你会发现XX与YY都不会响应其函数,原因是,当你retrun NO;的时候虽然执行了ccTouchBegan与return之间的代码,但是你return NO其实就是告诉cocos2d放弃此次事件处理,让cocos2d继续将触屏事件分配给其他注册过的类去处理监听,直到结束或者cocos2d获取到return true为止;
那么解决的方案:比如你想监听YY类中的ccTouchMoved事件,那么为了不影响XX中的监听ccTouchBegan事件,你应该让XX类在注册监听的时候让其优先级调整高于YY类,并且XX类中ccTouchBegan函数return NO,那么当用户触屏后,首先进入XX类中处理事件,然后会(因为XX类return NO)进入YY类,那么在YY类的ccTouchBegan函数中因为return YES;这样cocos2d就能响应ccTouchMoved函数了;
如果说你想让XX与YY类都响应ccTouchMoved函数,至少我利用此种事件分配的方式无法实现,不知道是不是cocos2d的1.0版本遗留的BUG还是其他原因,今天遇到所以拿出来跟大家分享;
本文出自 “Himi” 博客,请务必保留此出处http://xiaominghimi.blog.51cto.com/2614927/634675
分享到:
相关推荐
《cocos2d游戏开发之旅》是一本专为游戏开发初学者设计的教程,它深入浅出地介绍了使用cocos2d框架进行移动游戏开发的基本概念和技术。cocos2d是一个广泛使用的开源游戏引擎,特别适合开发2D游戏,其易用性、灵活性...
Cocos2d是一款广泛用于创建2D游戏、交互式应用和视觉效果的开源框架,尤其在iOS和Mac OS X平台上非常流行。它基于Objective-C语言,同时也提供了Swift接口。本教程涵盖从基础到进阶的cocos2d游戏开发全过程,共13...
本篇文章将详细讲解Cocos2d游戏开发中的触屏事件处理机制,帮助你理解如何利用这个框架来响应用户的触摸操作。 触屏事件处理在iOS游戏开发中至关重要,因为它直接决定了游戏的交互性和用户体验。Cocos2d中的触摸...
《cocos2d游戏开发电子书超清》是一本针对初学者的游戏开发指南,专注于cocos2d框架的使用。cocos2d是一款强大的、开源的2D游戏引擎,广泛应用于iPhone游戏开发以及移动平台的其他应用开发。本书旨在帮助读者快速...
Cocos2d游戏开发是一个专注于2D游戏开发的开源框架,它支持多种操作系统和编程语言,广泛应用于iOS、Android、Windows等平台的游戏开发。Cocos2d允许开发者快速构建游戏应用,其丰富的功能和灵活的设计让游戏开发变...
描述:“cocos2d作为手机2d游戏开发的优秀工具,在实际应用时多与屏幕触摸结合”,点明了触摸事件处理在Cocos2d游戏开发中的重要性。一个游戏的互动性很大程度上是通过触摸屏幕来实现的,因此理解和掌握Cocos2d的...
Cocos2D-X是一款强大的跨平台2D游戏开发框架,被广泛应用于iOS、Android、Windows Phone等多平台的游戏开发。本学习笔记将深入探讨如何在Cocos2D-X中处理触屏事件,让游戏能够响应用户的触摸操作。 首先,我们要...
Cocos2D-iPhone是iOS平台上一款广受欢迎的2D游戏开发框架,它以其高效、易用和功能丰富而受到开发者们的青睐。本教程将带你踏入Cocos2D游戏开发的大门,通过学习,你将掌握如何利用这个强大的工具创建令人惊叹的2D...
《cocos2d游戏开发教程(国外书籍译文)》是一份全面的资源包,旨在帮助初学者和进阶者掌握cocos2d游戏开发的核心技术。cocos2d是一款强大的开源游戏开发框架,广泛应用于iOS、Android以及多个平台的游戏制作。这份...
《iPhone & iPad cocos2d游戏开发实战完整版》是一本专为iOS平台上的游戏开发者编写的实战指南。这本书深入浅出地介绍了如何使用cocos2d框架来创建高性能、交互性强的游戏应用程序。cocos2d是一款强大的开源游戏开发...
### iOS Cocos2d游戏开发教程:从入门到精通 #### 引言 在苹果的iTunes App Store以及伴随而来的移动设备(如iPhone、iPod touch和iPad)的推动下,开发并销售自己的计算机游戏变得前所未有的容易。尽管这并不意味...
### cocos2d游戏开发基础知识点概述 #### 一、cocos2d简介 cocos2d是一款专为iOS和跨平台游戏开发设计的开源框架。它不仅能够支持2D游戏的构建,还提供了丰富的功能来简化游戏开发过程。cocos2d的核心优势在于其...
《iPhone&iPad cocos2d游戏开发实战》这本书深入浅出地介绍了在苹果移动设备上使用cocos2d框架进行游戏开发的技术与实践。cocos2d是一个强大的、开源的游戏开发库,尤其适合初学者和有一定编程基础的开发者,用于...
Cocos2d-JS是一款强大的2D游戏开发框架,它结合了JavaScript的灵活性与Cocos2d-x的高效性能,让开发者能够轻松地创建跨平台的游戏。本篇将深入探讨Cocos2d-JS的游戏开发知识,从基础到进阶,帮助你掌握这一利器。 ...
《cocos2dx游戏开发系列之三:源码解析与Android工程构建》 在游戏开发领域,cocos2dx是一个广泛使用的开源游戏引擎,尤其在跨平台开发中扮演着重要角色。本篇将深入探讨cocos2dx游戏开发系列的第三部分——源码...
【cocos2d游戏开发期末设计】 在游戏开发领域,Cocos2d是一个非常流行的开源框架,主要用于构建2D游戏、动态应用以及图形演示。它提供了丰富的功能,包括图形渲染、动画处理、物理引擎集成、触摸事件处理等,使得...
Cocos2d-JS是Cocos2d-x引擎的一个分支,它结合了JavaScript的易用性和C++的高性能,为游戏开发提供了一个高效、便捷的解决方案。 首先,Cocos2d-JS的核心概念包括场景(Scene)、层(Layer)、精灵(Sprite)、动作...
《Cocos2d-x 3.x游戏开发之旅》是一本深度探讨Cocos2dx 3.x框架的游戏开发专著,适合对游戏编程有兴趣并有一定基础的开发者。Cocos2dx是一个开源的游戏开发框架,它基于C++,同时支持多种语言,如Lua和JavaScript,...
《iOS 5 cocos2d游戏开发实战》这本书深入探讨了在iOS 5平台上利用Cocos2d框架进行2D游戏开发的技术与实践。Cocos2d是一款强大的、开源的、跨平台的游戏开发库,尤其适合于创建具有复杂动画效果和交互性的2D游戏。 ...