- 浏览: 261776 次
- 性别:
- 来自: 大连
文章分类
最新评论
一个场景(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 921[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 1378iphone开发基础:【object-c系列教程完毕】 接下来 ... -
(转)把两个Layer融合成一个UIImage的截图方法
2011-09-27 10:15 3483//layer1 CCLay ... -
cocos2d 使用 NSThread
2011-09-26 14:43 847-(void)toR_therd:(id) sender ... -
NSNotificationCenter
2011-09-26 14:23 1069定义一个消息中心 [[NSNotification ... -
COCOS2D 事件冒泡规律 和 CCMenu一直响应事件的解决办法
2011-09-09 12:50 2281cocos2d把响应事件的对像放入一个栈中,用先进后出的规率来 ... -
box2d 中设置界面大小的函数
2011-09-09 10:52 868-(void)activePageWhenEnterIn; ... -
设置 cocos2d 的音效回放参数
2011-09-09 00:05 1470cocos2d 回放音效的默认设置是 44Khz,但 iPho ... -
另一种实现 Fruit Ninja 里刀
2011-09-08 23:57 932实现原理: 画直线 在一个 list 列表里记 ... -
Scene
2011-09-08 23:50 1009scene永远是一个场景上的根节点 引用scene(即 CCS ... -
定时消息 update:方法
2011-09-08 23:48 1591scheduleUpdate方法会执行update:方法,每帧 ... -
CCAction
2011-09-08 23:46 1076Node可以执行Action 声明并运行action CC ... -
CCNode
2011-09-08 23:44 1142CCNode是所有节点的父类包括(Layer, Sprite, ... -
CCDirector
2011-09-08 23:43 2557首先接触到的是CCDirector类,顾名思义是2d动画的导演 ...
相关推荐
cocos2d-x学习笔记(4)--CCLayer背景绘制 .rar
cocos2dx中的CCScrollLayer类 CCScrollLayer::create(); srollLayer->setOriginPosition(pos); 修正内容: visit() -> CCLayer::visit() 修改成 CCLayer::draw();
图层在cocos2d-x中很重要,我们可以在其中添加精灵,也可以将图层添加到场景中。这几个图层类功能各不相同,具体的看代码的注释。大家只需要替换掉helloworld中的init函数就可以... //CCLayerColor继承自CCLayer,CCLa
CCLayer::init()); CCSprite * sprite = CCSprite::create("image1.png"); this->addChild(sprite); //获得CCSprite的默认坐标,CCSprite设置坐标的时候是用自己的锚点位置占据在坐标上的。 CCLog(...
1 场景 (CCScene)...................................................................................................................2 层(CCLayer)..........................................................
CCLayerColor层的使用方法,写的详细了一些,和上篇文章基本差不多的(查看CCLayer的更多介绍),只不过这次HelloWorld继承自CCLayerColor。 bool HelloWorld::init() { bool bRet = false; do { //ccc4这个...
Cocos2D-X核心类 Cocos2D-X 引擎的设计思路是将游戏中的各个部分...布景层(CCLayer):一个场景可以由多个布景类组成。布景层就是关卡里面的背景。 人物精灵(CCSprite):人物精灵可以分为玩家控制的主角类、敌人类等。
1.创建好 CCLayer 的子类 2.重写 onEnter 方法添加一些基本按钮 跟一些初始化代码 3.通过schedule方法 控制 坦克 子弹的CCSprite对象 4.根据点击手机屏幕,确定出坦克的方向,根据坦克的方向修改坦克的X,Y轴坐标,...
导出的类继承自CCLayer所以直接可以A_xx::create();添加到场景中。里面的CCSprite可以换成自己实现的类,这样添加一部分自定义的代码就能实现换皮功能。 简版工具,没有自定义的基类支持,所以现在就只支持循环动画...
导出的类继承自CCLayer所以直接可以A_xx::create();添加到场景中。里面的CCSprite可以换成自己实现的类,这样添加一部分自定义的代码就能实现换皮功能。 简版工具,没有自定义的基类支持,所以现在就只支持循环动画...
1.创建好 CCLayer 的子类 2.重写 onEnter 方法添加一些基本按钮 跟一些初始化代码 3.通过schedule方法 控制 坦克 子弹的CCSprite对象 4.根据点击手机屏幕,确定出坦克的方向,根据坦克的方向修改坦克的X,Y轴坐标...
第五章主要介绍Cocos2d-x核心技术,这里包括Cocos2d-x的核心类CCDirector、CCScene、CCNode、CCLayer、CCSprite、CCAction等,通过案例来介绍Cocos2d-x的场景、图层、交互、动作、动画、粒子效果、游戏地图、物理...
第五章主要介绍Cocos2d-x核心技术,这里包括Cocos2d-x的核心类CCDirector、CCScene、CCNode、CCLayer、CCSprite、CCAction等,通过案例来介绍Cocos2d-x的场景、图层、交互、动作、动画、粒子效果、游戏地图、物理...
第五章主要介绍Cocos2d-x核心技术,这里包括Cocos2d-x的核心类CCDirector、CCScene、CCNode、CCLayer、CCSprite、CCAction等,通过案例来介绍Cocos2d-x的场景、图层、交互、动作、动画、粒子效果、游戏地图、物理...
CCLayer::init()) { return false; } // 开启触摸 this->setTouchEnabled(true); // 创建数组,需要retain一下 play_bullet = CCArray::create(); play_bullet->retain(); enemy_bullet = CCArray::...
3.6.5 cclayer 3.7 ccsprite类 3.7.1 定位点揭秘 3.7.2 纹理大小 3.8 cclabel类 3.9 菜单 3.10 动作 3.10.1 重复动作 3.10.2 流畅动作 3.10.3 动作序列 3.10.4 瞬时动作 3.11 cocos2d测试...
3.2.5 图层类(CCLayer) 64 3.2.6 精灵类(CCSprite) 68 3.2.7 精灵集合类(CCSpriteBatchNode) 72 3.2.8 精灵帧缓冲(CCSpriteFrameCache) 74 3.2.9 Zwoptex纹理编辑器 76 3.3 文字与字体 80 3.3.1 TTF类型标签...