`
墙头上一根草
  • 浏览: 155241 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

cocos2dx 精灵增加触摸事件

阅读更多

  cocos2dx  给精灵实现一个触摸事件方法:

 

   让精灵类继承CCsprite和CCTargetedTouchDelegate两个类,然后实现CCTargetedTouchDelegate的几个虚函数如下:

 

   virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
 
     // optional
    virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
    virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);

  

    给精灵增加触摸事件的方式:

     1.在精灵类初始化的时候调用

     2.在进入场景的时候调用,如果在进入场景的时候调用,则需要精灵类需要实现两外的两个方法

         virtual void onEnter();//进入时注册
         virtual void onExit();//出场景时删除

 

    注册方法:

        void SelfCard::onEnter()
        {
            CCLog("sprite enter scene");
            CCSprite::onEnter();
            CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,-127,true);

            //这一步是关键
        }

      

        现在问题来了 通过以上方法加入到触摸事件的时候,不知道是不是全局的触摸事件,只要触摸然后精灵类就有会有反应,按我的理解就是我在精灵类上注册了触摸事件,那我触摸这个精灵的时候,才会有触摸相应的,但是实际中不是,所以我的理解就是   CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,-127,true);

  这个方法是所有的触摸事件的集合,只要有触摸的事件,就会相应所有被注册的事件,所以在每个触摸的事件里面自己要单独处理有没有被触摸到:

 

   /*触摸开始*/

   bool SelfCard::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent){

    CCPoint point=pTouch->getLocation();

    if(!isTouch(point))
        return false;

    CCSprite *prite = CCSprite::create("dong.png");

    prite->setPosition(ccp(this->getPositionX(),this->getPositionY()+50));

    this->getParent()->addChild(prite,0,1001);
    this->setVisible(false);
    return true;
}

/*判断是否被触摸到*/

bool SelfCard::isTouch(CCPoint point)
{
    CCPoint nodePoint=this->convertToNodeSpace(point);
    CCSize size=this->getContentSize();

    if(nodePoint.x>size.width ||nodePoint.x<0 ||nodePoint.y>size.height ||nodePoint.y<0 )
        return false;

    return true;
}

   

 

分享到:
评论

相关推荐

    lua+cocos2d-x 重写触摸事件

    在lua中用cocos2d-x重写触摸事件,让精灵,label,都能单独接收触摸事件

    基于cocos2d的target触摸,父子精灵节点的demo

    在Cocos2d中,我们通常通过实现`ccTouchBegan`, `ccTouchMoved`, `ccTouchEnded`等触摸事件回调函数来定义对触摸事件的处理逻辑。 触摸事件处理机制是Cocos2d中用户交互的关键部分。每个触摸事件会有一个触摸对象,...

    cocos2dx 精灵触摸事件的实现

    本教程将详细介绍如何在Cocos2d-x中为精灵实现触摸事件。 首先,我们需要了解Cocos2d-x的事件系统。Cocos2d-x使用了一个基于观察者模式的事件模型,包括触摸事件、键盘事件、加速器事件等。触摸事件主要分为三种...

    cocos2d-x-cocos2d-x-2.2.2.zip

    cocos2d-x不仅适用于游戏开发,还可以用于创建教育软件、互动媒体和其他2D图形应用,其强大的场景管理、精灵(Sprite)系统和粒子效果等功能,使得开发者能够快速构建各种复杂的2D场景。 总的来说,cocos2d-x 2.2.2...

    Cocos2d-x 自定义可接受处理触摸信息精灵类

    自定义精灵可以扩展Cocos2d-x的标准精灵功能,使其具备特定的行为或交互方式,例如处理触摸事件。本教程将通过一个简单的例子,基于cocos2dx-2.1.5版本,探讨如何创建一个自定义的可接受并处理触摸信息的精灵类。 ...

    封装的一个 cocos2d-x 接收点击事件的精灵

    在Cocos2d-x 中,触摸事件通常通过`cc::EventDispatcher` 和 `cc::EventListener` 来管理。`TempTouchSprite` 可能会实现一个内部的事件监听器,用于监听触摸开始、触摸移动以及触摸结束等事件。例如,它可能会注册...

    Cocos2d-JS游戏开发

    同时,Cocos2d-JS的事件系统使得响应用户输入和游戏事件变得简单,如触摸事件、键盘事件等,这对于游戏的交互设计至关重要。 在Cocos2d-JS中,动画是游戏生动性的关键。通过序列帧动画(SpriteSheet)和动作组合,...

    cocos2d-x 3.0

    结合键盘事件或触摸事件,可以实现人物在四个方向上的行走。 2. 帧动画:为了模拟行走的动作,我们需要一组连续的图片(帧),形成行走动画序列。cocos2d-x 3.0中的cc::Animate类可以轻松管理这些帧,通过`...

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

    2. **图形与动画**:讲解如何使用Cocos2d-x的绘图API绘制2D图形,实现精灵(Sprite)、动画(Animation)和粒子系统(Particle System)。 3. **物理引擎**:介绍Cocos2d-x内置的Box2D物理引擎,用于模拟游戏中的...

    Cocos2d-x实战C++卷关东升著完整版pdf

    接着,书中会讲解Cocos2d-x的事件处理机制,包括触摸事件、键盘事件等,这些都是游戏交互必不可少的部分。同时,还会涉及动画和物理引擎的使用,如动作(Action)、序列(Sequence)、组(Group)以及Box2D物理引擎...

    Cocos2d-x实战:C++卷(2版)源代码

    5. **事件处理**:Cocos2d-x提供了事件处理机制,包括触摸事件、键盘事件、网络事件等,使得游戏能够响应用户的输入。 6. **声音与音乐**:Cocos2d-x支持音频播放,包括背景音乐和音效,可以实现音效的同步和控制。...

    cocos2d-android jar包全套.zip

    同时,别忘了Cocos2d支持事件处理,如触摸事件和键盘事件,这使得游戏的用户交互变得更加灵活。 总之,"cocos2d-android jar包全套.zip"提供的是一整套Cocos2d-x在Android平台上的开发环境,包含了游戏开发所需的...

    cocos2D-lua 核心编程内置代码

    Cocos2d-lua提供了丰富的API,包括场景管理、精灵动画、物理引擎、粒子系统、触摸事件处理等,使开发者能够快速构建游戏场景和交互逻辑。 二、核心编程概念 1. 场景(Scene):在Cocos2d-lua中,每个游戏状态或屏幕...

    Cocos2d-x实战 JS卷

    5. **事件处理**:掌握事件监听和响应机制,包括触摸事件、键盘事件以及自定义事件的处理,实现用户交互。 6. **游戏逻辑**:学习如何组织游戏逻辑,包括状态管理、游戏循环、时间管理和AI设计。 7. **资源管理**...

    学习Iphone 和 Ipad cocos2d 游戏开发

    Cocos2d基于Objective-C,提供了一个强大的游戏开发环境,包括场景管理、精灵(Sprites)、动作(Actions)、层(Layers)、粒子系统(Particle Systems)以及触摸事件处理等核心功能。随着Swift的普及,Cocos2d也有...

    cocos2d-x 跑酷源码

    3. 触摸事件处理:跑酷游戏通常需要响应玩家的触摸操作,如滑动屏幕控制角色移动,cocos2d-x提供了触摸事件监听机制。 4. 物理引擎:Box2D物理引擎用于模拟角色与障碍物的碰撞,实现真实感的运动效果。 5. 游戏逻辑...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    接着,书中会详细讲解Cocos2d-x 3.x的图形绘制,包括精灵(Sprite)、批处理(Batch Node)、纹理 atlases和图集管理。开发者可以学会如何高效地绘制2D图形,利用纹理atlases优化内存使用,并通过批处理技术提升渲染...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    6. **事件处理**:提供触摸、键盘、摇杆等多种输入事件的处理机制,使开发者能快速响应用户操作。 7. **物理引擎**:集成Box2D物理引擎,可以轻松实现物理模拟,如碰撞检测和刚体动力学。 8. **Audio支持**:支持...

    cocos2d 入门教程

    cocos2d 提供了一个基于消息的事件处理系统,开发者可以通过监听触摸事件、定时器事件来实现游戏逻辑。例如,你可以通过触摸事件控制角色移动,通过定时器更新游戏状态。 五、物理引擎与粒子系统 cocos2d 内置了Box...

    cocos2d-x-3.1.zip

    3. **渲染引擎**:Cocos2d-x 3.1包含了强大的2D渲染引擎,能够处理精灵(Sprites)、纹理(Textures)、动画(Animations)、粒子系统(Particle Systems)等图形元素。 4. **场景管理**:使用Scene类来管理游戏的...

Global site tag (gtag.js) - Google Analytics