- 浏览: 264682 次
- 性别:
- 来自: 大连
文章分类
最新评论
一个场景(Scene)上可能有多个Layer
* 和Scene一样,Layer没有宽高,只是一群可视对象的概念集合
获取Touch 输入
用户Touch动作跟以下方法相关
获取Touch坐标
如果要指定层消耗触摸
如果此方法内容什么都不写,则不会接收任何触摸事件
这种情况下要用以下方法获取触摸事件
接收accelerometer事件
引用
CCLayer 对象定义了可描绘的区域,定义了描绘的规则。CCLayer可以实现半透明的效果,令您看到它背后的layers。概括地说:CCLayer 用于定义外观和事件behavior。所以,当编写cocos2d程序的时候,大部分工作就是编写CCLayer的子类去实现所要的效果。
CCLayer 负责处理事件event。Events 会从第一个向最后一个layers传递,直至某个layer获取event并处理它。
虽然某个时候,你需要客户化一个CCLayer类, 但cocos2d已经实现了多种功能的layers(比如菜单layer: CCMenu, 颜色层layer: CCColorLayer,等等)。
Layers 可以包含CCSprite 对象, CCLabel 对象 和其它layer对象。layers是CCNode的子类,所以他们也可以使用actions来转 换坐标. See Actions for more detail about actions.
CCLayer 负责处理事件event。Events 会从第一个向最后一个layers传递,直至某个layer获取event并处理它。
虽然某个时候,你需要客户化一个CCLayer类, 但cocos2d已经实现了多种功能的layers(比如菜单layer: CCMenu, 颜色层layer: CCColorLayer,等等)。
Layers 可以包含CCSprite 对象, CCLabel 对象 和其它layer对象。layers是CCNode的子类,所以他们也可以使用actions来转 换坐标. See Actions for more detail about actions.
+(id) scene { CCScene* scene = [CCScene node]; CCLayer* backgroundLayer = [HelloWorldBackground node]; [scene addChild: backgroundLayer]; CCLayer* layer = [HelloWorld node]; [scene addChild:layer]; CCLayer* userInterfaceLayer = [HelloWorldUserInterface node]; [scene addChild: userInterfaceLayer]; return scene; }
* 和Scene一样,Layer没有宽高,只是一群可视对象的概念集合
获取Touch 输入
self.isTouchEnabled = YES;
用户Touch动作跟以下方法相关
Called when a finger just begins touching the screen: -(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event Called whenever the finger moves on the screen: -(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event Called when a finger is lifted off the screen: -(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event Called to cancel a touch: -(void) ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
获取Touch坐标
UITouch *touch = [touches anyObject]; CGPoint touchLocation = [touch locationInView: [touch view]]; return [[CCDirector sharedDirector] convertToGL:touchLocation];
如果要指定层消耗触摸
-(void) registerWithTouchDispatcher { [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:INT_MIN+1 swallowsTouches:YES]; }
如果此方法内容什么都不写,则不会接收任何触摸事件
这种情况下要用以下方法获取触摸事件
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {} -(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event {} -(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {} -(void) ccTouchCancelled:(UITouch *)touch withEvent:(UIEvent *)event {}和上面的方法略有不同,并且,注意ccTouchBegan:withEvent:返回是BOOL类型,如果返回YES,则触摸事件不会冒泡到优先级较低的Layer
接收accelerometer事件
didAccelerate:(UIAcceleration *)acceleration { CCLOG(@"acceleration: x:%f / y:%f / z:%f", acceleration.x, acceleration.y, acceleration.z); }
发表评论
-
cocos2d 在玩游戏的时候不进入待机模式
2012-04-11 10:19 954[UIApplication sharedApplicatio ... -
如何设置touch的响应层或吸收终端层
2012-03-07 22:44 0[[CCTouchDispatcher sharedDis ... -
将UIImage中像素的黑色转成透明色
2012-03-07 22:22 0void ProviderReleaseData ... -
cocos2d添加输入框
2012-02-23 17:33 0添加输入框,因此搜了一下找了这个方法 [[[[CCDirec ... -
debug模式调试
2012-02-20 10:59 0-(void) dealloc{ CCLOG(@&qu ... -
随机在屏幕上产生一个坐标点
2012-02-20 10:28 0//根据某个数字随机产生一个坐标点 - (CGPoint ... -
判断触摸点是否与精灵碰撞
2012-02-20 10:28 0//碰撞检测 - (BOOL) circle:(CGPo ... -
iphone开发基础:【object-c系列教程完毕】
2011-10-25 11:11 1427iphone开发基础:【object-c系列教程完毕】 接下来 ... -
(转)把两个Layer融合成一个UIImage的截图方法
2011-09-27 10:15 3515//layer1 CCLay ... -
cocos2d 使用 NSThread
2011-09-26 14:43 884-(void)toR_therd:(id) sender ... -
NSNotificationCenter
2011-09-26 14:23 1109定义一个消息中心 [[NSNotification ... -
COCOS2D 事件冒泡规律 和 CCMenu一直响应事件的解决办法
2011-09-09 12:50 2332cocos2d把响应事件的对像放入一个栈中,用先进后出的规率来 ... -
box2d 中设置界面大小的函数
2011-09-09 10:52 910-(void)activePageWhenEnterIn; ... -
设置 cocos2d 的音效回放参数
2011-09-09 00:05 1514cocos2d 回放音效的默认设置是 44Khz,但 iPho ... -
另一种实现 Fruit Ninja 里刀
2011-09-08 23:57 969实现原理: 画直线 在一个 list 列表里记 ... -
Scene
2011-09-08 23:50 1039scene永远是一个场景上的根节点 引用scene(即 CCS ... -
定时消息 update:方法
2011-09-08 23:48 1625scheduleUpdate方法会执行update:方法,每帧 ... -
CCAction
2011-09-08 23:46 1147Node可以执行Action 声明并运行action CC ... -
CCNode
2011-09-08 23:44 1191CCNode是所有节点的父类包括(Layer, Sprite, ... -
CCDirector
2011-09-08 23:43 2581首先接触到的是CCDirector类,顾名思义是2d动画的导演 ...
相关推荐
《cocos2d-x学习笔记(4)--CCLayer背景绘制》 在移动游戏开发领域,cocos2d-x是一个广泛使用的2D游戏引擎,它为开发者提供了强大的图形渲染、动画处理以及游戏逻辑管理功能。本篇笔记主要探讨的是如何在cocos2d-x中...
首先,CCScrollLayer是继承自CCLayer的一个子类,它的主要功能是允许开发者在二维游戏中或应用中创建一个滚动的视图层。这个层可以包含多个子层,也就是页面,通过滑动操作可以在这些页面之间进行切换。这个类特别...
在Cocos2d-x游戏开发框架中,理解各个节点如CCScene、CCLayer和CCSprite的默认坐标和锚点是非常关键的。这些组件是构建游戏场景的基础,它们的坐标系统和锚点设置直接影响到元素的布局和动画效果。下面我们将深入...
在cocos2d-x游戏开发框架中,图层(CCLayer)是构建游戏界面的基础元素,它允许开发者在上面添加精灵、文本等其他游戏对象。CCLayer本身是一个无色的空容器,但可以通过其子类来实现不同的效果。 1. CCLayerColor:...
在选项卡系统中,每个选项卡通常对应一个`CCLayer`,用户切换选项卡时,实际上是在不同的`CCLayer`间进行切换。 实现选项卡功能,我们可以采用以下步骤: 1. **创建选项卡层**:为每个功能或菜单项创建一个`...
1 场景 (CCScene)...................................................................................................................2 层(CCLayer)..........................................................
CCLayerMultiplex是Cocos2d-x库中的一个类,它允许开发者在一个CCLayerMultiplex实例中管理和切换多个CCLayer子类。这种功能对于实现选项卡式界面或者在游戏的不同场景之间进行平滑过渡非常有用。 首先,我们要理解...
接着,使用`addTargetedDelegate()`方法添加触摸委托,该方法接受三个参数:你要添加的委托对象(通常是你的CCLayer或CCNode子类实例)、优先级(数字越小,优先级越高)以及是否独占触摸。例如: ```cpp ...
CCLayerColor层的使用方法,写的详细了一些,和上篇文章基本差不多的(查看CCLayer的更多介绍),只不过这次HelloWorld继承自CCLayerColor。 bool HelloWorld::init() { bool bRet = false; do { //ccc4这个...
在本篇文章中,我们将深入探讨cocos2d中的touch事件机制以及如何添加cclayer层。 首先,让我们理解什么是cclayer。在Cocos2d-x中,ccLayer是一个继承自ccNode的类,它是场景(ccScene)中的基本元素,用于组织和...
本文档总结了cocos2d-x面试题,涵盖了CCScene、CCLayer、CCSprite、CCNode、CCAction、CCDirector、CCEGLView等重要概念,并提供了相关的知识点。 一、CCScene和CCLayer CCScene是app工作流程上独立的块,一个app...
首先,我们要理解Cocos2d-x中的“布景层”(CCLayer)。在Cocos2D-X中,布景层是场景(CCScene)的一个子类,用于承载游戏中的各种元素,如角色、背景、交互对象等。布景层可以看作是一个容器,可以包含多个子节点,...
`CCGestureRecognizer`通常会关联到一个`CCLayer`或者`CCNode`,当用户在屏幕上执行特定手势时,它会触发相应的回调方法,让开发者可以处理这些手势事件。 在提供的文件列表中,`CCNode.h`和`.m`、`CCLayer.h`和`.m...
在这个场景中,我们看到一个关于Cocos2d手势支持的自定义实现,通过改写CCLayer、CCNode和CCGestureRecognizer这三个核心类。 首先,`CCLayer`是Cocos2d中的一个基础类,它提供了一个可以添加子节点、处理事件(如...
在Cocos2D-X中,CCLayer类作为场景的一部分,它继承了CCTouchDelegate协议,允许它检测和响应触屏事件。CCTouchDelegate有两个主要的子协议:CCStandardTouchDelegate用于处理多点触摸,而CCTargetedTouchDelegate则...
本部分内容将详细探讨Cocos2d中的触摸事件处理,特别是CCLayer层如何注册和处理触摸事件,以及与UIAccelerometerDelegate协议的交互。 描述:“cocos2d作为手机2d游戏开发的优秀工具,在实际应用时多与屏幕触摸结合...
1. **CCScene、CCLayer与CCSprite** - **CCScene** 是应用程序工作流程中的独立单元,可以有多个,但只有一个处于活动状态。它由一个或多个**CCLayer** 组成,层之间按照前后顺序排列。CCScene通过`runWithScene`、...