要想CCSprite具有点击事件,需要继承CCTargetedTouchDelegate(单点)或者CCStandardTouchDelegate(多点),CCTargetedTouchDelegate和CCStandardTouchDelegate都继承自
CCTouchDelegate
然后在CCSprite的OnEnter中添加
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,-129,true);
在OnExit中添加
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
重写
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
例:
#ifndef _CUSTOMER_SPRITE_H_ #define _CUSTOMER_SPRITE_H_ #include "cocos2d.h" USING_NS_CC; class SpriteClickListener{ public: virtual void spriteClicked() = 0; }; class CustomSprite:public CCSprite,public CCTargetedTouchDelegate { public: void onEnter(); void onExit(); static CustomSprite * createWithFile(const char * fileName); virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); void setOnClickListener(SpriteClickListener * listener); private: SpriteClickListener * listener; }; #endif
#include "CustomSprite.h" void CustomSprite::onEnter() { CCSprite::onEnter(); CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,-129,true); } void CustomSprite::onExit() { CCSprite::onExit(); CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this); } CustomSprite * CustomSprite::createWithFile(const char * fileName) { CustomSprite *pobSprite = new CustomSprite(); if (pobSprite && pobSprite->initWithFile(fileName)) { pobSprite->autorelease(); return pobSprite; } CC_SAFE_DELETE(pobSprite); return NULL; } void CustomSprite::setOnClickListener(SpriteClickListener * listener) { this->listener = listener; } bool CustomSprite::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent) { //CCLOG("spriteClicked"); listener->spriteClicked(); return true; } void CustomSprite::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent) { } void CustomSprite::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) { }
使用:
继承SpriteClickListener
重写
virtual void spriteClicked();
CustomSprite *spriteClose = CustomSprite::createWithFile("CloseNormal.png"); spriteClose->setPosition(CCPointMake(100,200)); spriteClose->setOnClickListener(this); this->addChild(spriteClose);
相关推荐
CCSprite的基本处理:缩放、旋转、混色 CCSprite的Action:帧动画,move+JUMP,move+rotate,FlowAction等,对于这些了解了,然后如果还有其他需求,相对就简单很多了.
CCSprite 精灵动画 动画示例精灵就是将图形资源加载到内存中,并根据游戏需要将其显示到屏幕中的工具,游戏中大到背景、UI,小到NPC、道具,只要是用图片展示的,都是精灵或它的子类。从技术上讲,精灵是一个可以...
NULL 博文链接:https://o0o0o0o.iteye.com/blog/805581
在vs2010+cocos2d-x编译环境下实现的ccsprite精灵类的动画播放
Cocos2d-x初入学堂-->CCSprite基本处理(2):创建、缩放、旋转、混色;源码和资源都放在包里了
结论:实践证明这三个东西的默认坐标都是0,0 默认锚点都是0.5,0.5。 bool HelloWorld::init() { bool bRet = false; do ... CCSprite * sprite = CCSprite::create("image1.... CCLog("CCSprite.x=%f,CCSprite.y=
CCSprite* object = CCSprite::create("HelloWorld.png");object->setPosition(ccp(mask->getContentSize().width/2, mask->getContentSize().height/2));// Create a masked imageCCMask* masked = CCMask::create...
4.根据点击手机屏幕,确定出坦克的方向,根据坦克的方向修改坦克的X,Y轴坐标,来实现坦克的移动 5.通过CCRect的CCRectIntersetsRect函数来进行碰撞检测,实现子弹打击坦克 6.代码完成后 安装zune后 就能把游戏部署...
实现的cocos2dx 精灵触摸事件
CCSprite *pToBar=CCSprite::createWithTexture(texture); pToBar->setPosition(ccp(400,436)); pToBar->setScale(0.7f); this->addChild(pToBar,1); texture=CCTextureCache::sharedTextureCache()->addImage...
Debug模式下,需要注释掉 CCGLProgramState.h apply() 方法中 switch语句default分支下的断言 调用方法 CSpriteWithHue *sprite = CCSpriteWithHue::create("HelloWorld.png"); sprite->setHue(4.6);...
4.根据点击手机屏幕,确定出坦克的方向,根据坦克的方向修改坦克的X,Y轴坐标,来实现坦克的移动 5.通过CCRect的CCRectIntersetsRect函数来进行碰撞检测,实现子弹打击坦克 6.代码完成后 安装zune后 就能把游戏部署...
sprite = CCSprite.sprite("p.png"); this.addChild(sprite); CGPoint point = CGPoint.ccp(200, 200); sprite.setPosition(point); // CCMoveTo moveTo = CCMoveTo.action(2, CGPoint.ccp(300, 600)...
利用cocos2dx引擎开发的摇杆控件,继承自CCSprite,完美兼容2.2.1
4.根据点击手机屏幕,确定出坦克的方向,根据坦克的方向修改坦克的X,Y轴坐标,来实现坦克的移动 5.通过CCRect的CCRectIntersetsRect函数来进行碰撞检测,实现子弹打击坦克 6.代码完成后 安装zune后 就能把游戏...
Cocos2D-X核心类 Cocos2D-X 引擎的设计思路是将游戏中的各个部分抽象成几个概念:导演、场景、布景层及人物精灵。 导演(CCDirector):游戏的...人物精灵(CCSprite):人物精灵可以分为玩家控制的主角类、敌人类等。
小游戏开发纯代码 @interface CCFoePlane : CCSprite @property (readwrite) int planeType; @property (readwrite) int hp; @property (readwrite) int speed;
不需要cocos2d,仅基于UIImage,实现类似cocos2d的精灵类(CCSprite),用于播放帧动画。帧动画的图片可以来自一张精灵图片(sprite sheet,texture atlas),类似cocos2d的CCSprite类。 小编注:在iOS 7中已经支持...