Layer其实继承了触控的接口. 所以只需要重写一些函数即可.
 
在helloword类中重写:
    virtual bool init();
    /** Callback function for touch began.
    *
    * @param touch Touch information.
    * @param unused_event Event information.
    * @return if return false, onTouchMoved, onTouchEnded, onTouchCancelled will never called.
    * @js NA
    */
    virtual bool onTouchBegan(Touch *touch, Event *unused_event);
    /** Callback function for touch moved.
    *
    * @param touch Touch information.
    * @param unused_event Event information.
    * @js NA
    */
    virtual void onTouchMoved(Touch *touch, Event *unused_event);
    /** Callback function for touch ended.
    *
    * @param touch Touch information.
    * @param unused_event Event information.
    * @js NA
    */
    virtual void onTouchEnded(Touch *touch, Event *unused_event);
    /** Callback function for touch cancelled.
    *
    * @param touch Touch information.
    * @param unused_event Event information.
    * @js NA
    */
    virtual void onTouchCancelled(Touch *touch, Event *unused_event);
 
 
此时,只要这个layer在界面上,点击就会在这几个函数中响应. 即可在这里面控制精灵的移动
 
 
 但是编译错误.
2>f:\cocos\p\demo\classes\gamescene.h(17): error C2061: syntax error : identifier 'Touch' (..\Classes\HelloWorldScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(24): error C2061: syntax error : identifier 'Touch' (..\Classes\HelloWorldScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(31): error C2061: syntax error : identifier 'Touch' (..\Classes\HelloWorldScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(38): error C2061: syntax error : identifier 'Touch' (..\Classes\HelloWorldScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(49): error C2143: syntax error : missing ';' before '*' (..\Classes\HelloWorldScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(49): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..\Classes\HelloWorldScene.cpp)
2>f:\cocos\p\demo\classes\helloworldscene.cpp(105): warning C4996: 'cocos2d::CCString': was declared deprecated
2>          f:\cocos\p\demo\cocos2d\cocos\deprecated\ccdeprecated.h(1108) : see declaration of 'cocos2d::CCString'
2>f:\cocos\p\demo\classes\gamescene.h(17): error C2061: syntax error : identifier 'Touch' (..\Classes\GameScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(24): error C2061: syntax error : identifier 'Touch' (..\Classes\GameScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(31): error C2061: syntax error : identifier 'Touch' (..\Classes\GameScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(38): error C2061: syntax error : identifier 'Touch' (..\Classes\GameScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(49): error C2143: syntax error : missing ';' before '*' (..\Classes\GameScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.h(49): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..\Classes\GameScene.cpp)
2>f:\cocos\p\demo\classes\gamescene.cpp(42): error C2065: 'zxsprite' : undeclared identifier
2>f:\cocos\p\demo\classes\gamescene.cpp(43): error C2065: 'zxsprite' : undeclared identifier
2>f:\cocos\p\demo\classes\gamescene.cpp(43): error C2227: left of '->setScale' must point to class/struct/union/generic type
2>          type is 'unknown-type'
2>f:\cocos\p\demo\classes\gamescene.cpp(44): error C2065: 'zxsprite' : undeclared identifier
2>f:\cocos\p\demo\classes\gamescene.cpp(44): error C2227: left of '->setPosition' must point to class/struct/union/generic type
2>          type is 'unknown-type'
2>f:\cocos\p\demo\classes\gamescene.cpp(45): error C2065: 'zxsprite' : undeclared identifier
2>f:\cocos\p\demo\classes\gamescene.cpp(49): warning C4996: 'cocos2d::Layer::setTouchMode': was declared deprecated
2>          f:\cocos\p\demo\cocos2d\cocos\2d\cclayer.h(181) : see declaration of 'cocos2d::Layer::setTouchMode'
2>f:\cocos\p\demo\classes\gamescene.cpp(56): error C2511: 'bool GameScene::onTouchBegan(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'GameScene'
2>          f:\cocos\p\demo\classes\gamescene.h(4) : see declaration of 'GameScene'
2>f:\cocos\p\demo\classes\gamescene.cpp(57): warning C4996: 'cocos2d::CCPoint': was declared deprecated
2>          f:\cocos\p\demo\cocos2d\cocos\deprecated\ccdeprecated.h(833) : see declaration of 'cocos2d::CCPoint'
2>f:\cocos\p\demo\classes\gamescene.cpp(58): error C2065: 'zxsprite' : undeclared identifier
2>f:\cocos\p\demo\classes\gamescene.cpp(58): error C2227: left of '->setPosition' must point to class/struct/union/generic type
2>          type is 'unknown-type'
2>f:\cocos\p\demo\classes\gamescene.cpp(64): error C2511: 'void GameScene::onTouchMoved(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'GameScene'
2>          f:\cocos\p\demo\classes\gamescene.h(4) : see declaration of 'GameScene'
2>f:\cocos\p\demo\classes\gamescene.cpp(70): error C2511: 'void GameScene::onTouchEnded(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'GameScene'
2>          f:\cocos\p\demo\classes\gamescene.h(4) : see declaration of 'GameScene'
2>f:\cocos\p\demo\classes\gamescene.cpp(75): error C2511: 'void GameScene::onTouchCancelled(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'GameScene'

2>          f:\cocos\p\demo\classes\gamescene.h(4) : see declaration of 'GameScene'

 
解决办法:
在cocos2d.h包含路径下添加USING_NS_CC即可.
#include "cocos2d.h"

USING_NS_CC;

 
 
 
在<权威指南>中关于注册触摸响应的方法在3.x中已经不再支持.
在权威指南中是需要重载registerWithTouchDispatcher()函数进行操作的.但我当前使用的3.12版本不再支持.
因为:  在Layer.h源码中有 final 关键字. 所以我认为应该就是不再使用.(不知道是不是这么理解)
    /** If isTouchEnabled, this method is called onEnter. Override it to change the
    way Layer receives touch events.
    ( Default: TouchDispatcher::sharedDispatcher()->addStandardDelegate(this,0); )
    Example:
    void Layer::registerWithTouchDispatcher()
    {
    TouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,INT_MIN+1,true);
    }
    @since v0.8.0
    @js NA
    */

CC_DEPRECATED_ATTRIBUTE virtual void registerWithTouchDispatcher() final {};

 
 
 
 
 
 
 
 
 
 
 
 
 

cocos2dx触摸响应的更多相关文章

  1. cocos2d-x触摸事件优先级的探究与实践

    如何让自定义Layer触发触摸事件? bool LayerXXX::init() { this->setTouchEnabled(true); CCTouchDispatcher* td = C ...

  2. cocos2d-x触摸事件优先级

     CCTouchDispatcher是管理cocos2d-x中全部Touch事件派发的类, CCTouchDispatcher中包括了两个CCTouchHandler的列表, 分别存储Standa ...

  3. React-native 中的触摸响应功能

    我们在做APP的时候,与桌面应用系统不同的是触摸响应. web页面对触摸响应的支持和原生的APP有着很大的差异. 基本用法 componentWillMount: function() { this. ...

  4. 关于cocostudio动态添加控件触摸响应无效的学习

    time:2015/04/19 1. 描述 * 把studio制作的ui加载之后,动态添加事件(比如说,单点触摸),结果回调函数(eg:onTouchBegan等)根本没有响应! * 另外,网上有朋友 ...

  5. cocos2d-x学习记录3——CCTouch触摸响应

    游戏不同于影音,强交互性是其一大特色,在游戏中主要体现为接受用户的输入并响应.智能手机触摸是其重要的输入方式. 在cocos2d-x中,触摸分为单点触摸和多点触摸. 单点触摸:主要继承CCTarget ...

  6. cocos2dx游戏--欢欢英雄传说--添加触摸响应

    主要的调整就是将HelloWorldScene改成了MainSecne,然后将Player作为了MainScene的私有成员变量来处理.修改了人物图片,使用了网上找到的三国战纪的人物素材代替我之前画的 ...

  7. cocos2d-x触摸分发器原理

    屏幕捕捉到触摸消息的派发流程: 如果有一个组件如果想要接收触摸事件,会通过继承一个CCTouchDelegate接口注册给CCTouchDispatcher,CCTouchDispatcher 中维护 ...

  8. cocos2dx 触摸钢琴

    1.触摸钢琴项目描写叙述 1.1触摸钢琴功能描写叙述 实现手指点按琴键发出相应的音调,按下位置出现星云的粒子特效,滚动实现移动到别的琴键的位置,按下安卓返回键运行关闭. 1.2触摸钢琴所需技术 粒子特 ...

  9. 3.x的触摸响应机制

    第一种是采用函数回调,主要是用于MenuItem [cpp] view plaincopy // a selector callback void menuCloseCallback(Object*  ...

随机推荐

  1. 代码格式化工具---prettier配置

    我自己的常用 prettier 配置如下: // .prettierrc 文件 // 这里修改的都是与默认值不同的,没有修改到的就是启用默认值 // .prettierrc 文件是使用 json 格式 ...

  2. NX二次开发-UFUN旋转视图UF_VIEW_rotate_view

    NX11+VS2013 #include <uf.h> #include <uf_view.h> #include <uf_obj.h> #include < ...

  3. NX二次开发-UFUN创建基准平面UF_MODL_create_plane

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建基准平面 ] = {0.0, 0.0, ...

  4. java带jar编译与运行

    javac -classpath ./wxpay-sdk-0.0.3.jar HttpsTest2.java java -cp .:./wxpay-sdk-0.0.3.jar HttpsTest2

  5. 牛客多校第九场 E All men are brothers 并查集/组合论

    题意: 一开始有n人互不认识,每回合有两个人认识,认识具有传递性,也就是相互认识的人组成小团体.现在问你每个回合,挑选四个人,这四个人互不认识,有多少种挑选方法. 题解: 认识不认识用并查集维护即可, ...

  6. Java设计模式简单总结

    1.单例模式:在应用程序整个生命周期中,单例类的实例只有一个,并且会自动实例化.单例类的构造方法必须为私有,并且提供一个全局访问点 public class Test { private Test() ...

  7. Openstack nova-scheduler 源码分析 — Filters/Weighting

    目录 目录 前言 调度器 FilterScheduler调度器的工作流程 Filters 过滤器 Filters 类型 Weighting 权重 源码实现 关键文件及其意义 阶段一nova-sched ...

  8. Openstack Paste.ini 文件详解

    目录 目录 pasteini 配置文件详解 composite pipeline filter app DEFAULT server Request 被 pasteini 处理的流程 如何加载 pas ...

  9. 【JUC】JDK1.8源码分析之ConcurrentHashMap

    一.前言 最近几天忙着做点别的东西,今天终于有时间分析源码了,看源码感觉很爽,并且发现ConcurrentHashMap在JDK1.8版本与之前的版本在并发控制上存在很大的差别,很有必要进行认真的分析 ...

  10. 剑指offer——35二叉树的后序遍历

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同.   题解: 这道题,一开始以为将后序遍历排序后的得 ...