//GameScene.h

 #include "cocos2d.h"

 USING_NS_CC;

 class GameScene : public cocos2d::Layer

 {

 public:

     static cocos2d::Scene* createScene();

     virtual bool init();

     void singleClickEvent();

     void doubleClickEvent();

     void funCallback(float dt);

     virtual bool onTouchBegan(Touch *touch, Event *unused_event);

     CREATE_FUNC(GameScene);

 private:        //注意不能用auto关键字

     Size size;

     Sprite *sprite;

     bool isClicked;

 };
 //GameScene.cpp

 //  Created by Jacedy on 16-8-11.

 #include "GameScene.h"

 USING_NS_CC;

 cocos2d::Scene* GameScene::createScene()

 {

     auto scene = Scene::create();   //创建一个场景

     auto layer = GameScene::create();   //创建一个图层

     scene->addChild(layer);

     return scene;

 }

 //初始化当前的图层

 bool GameScene::init()

 {

     if(!Layer::init())      //初始化父类

         return false;

     //获取屏幕大小

     size = Director::getInstance()->getVisibleSize();

     //auto size = Director::getInstance()->getWinSize();

     //添加一个图片精灵

     sprite = Sprite::create("OnePiece_1.png");

     sprite->setPosition(Vec2(size.width/, size.height/));

     this->addChild(sprite);

     isClicked = false;

     //创建监听事件对象

     auto listener = EventListenerTouchOneByOne::create();

     //定义监听事件的回调函数

     listener->onTouchBegan = CC_CALLBACK_2(GameScene::onTouchBegan, this);

     //在事件分发器中注册

     _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

     return true;

 }

 void GameScene::singleClickEvent()

 {

     log("Single click");

 }

 void GameScene::doubleClickEvent()

 {

     log("Double click");

 }

 void GameScene::funCallback(float dt)

 {

     if (isClicked)

     {

         isClicked = false;

         singleClickEvent();

     }

 }

 bool GameScene::onTouchBegan(Touch *touch, Event *unused_event)

 {

     if (isClicked)

     {

         isClicked = false;

         doubleClickEvent();

     }

     else

     {

         isClicked = true;

         //0.3秒内再次点击将再次调用onTouchBegan函数,0.3秒后再次点击将调用funCallback函数

         scheduleOnce(schedule_selector(GameScene::funCallback), 0.3f);

     }

     return false;

 }

cocos2d-x C++ (利用定时器自定义屏幕双击事件函数)的更多相关文章

  1. bootstrap-treeview 自定义实现双击事件

    bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一些继承树结 ...

  2. WPF 自定义Grid双击事件

    先设置Grid_MouseDown事件函数,然后在函数内增加如下代码 ) { //双击执行 } 更改数字可以区别单击和双击 感谢@一 定 会 去 旅 行

  3. JS如何利用定时器实现长按事件

    本篇文章由:http://xinpure.com/js-how-to-use-timer-press-event/ JS 原生事件并没有长按事件,但是我们可以利用一些原有的事件,来实现长按事件 任务需 ...

  4. 网页开发利用jq自定义鼠标右击事件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)

    记录一下,好开心,感觉今天自己又学到东西了,对于屏幕双击事件本来还毫无头绪的,今天得以解决总算没白费加班,其实原理很简单:就是在点击事件里做一个判断,这个判断就是需要获取当前系统的时间的毫秒差,第一次 ...

  6. cocos2dx 3.x(一张背景图利用定时器实现循环轮播)

    // // MainScene.hpp // helloworld // // Created by apple on 16/9/19. // // #ifndef MainScene_hpp #de ...

  7. iOS开发——UI基础-自定义构造方法,layoutSubviews,Xib文件,利用Xib自定义View

    一.自定义构造方法 有时候需要快速创建对象,可以自定义构造方法 + (instancetype)shopView { return [[self alloc] init]; } - (instance ...

  8. C#-创建自定义双击事件

    .NET Compact Framework 不支持按钮的 Windows 窗体 DoubleClick 事件.但是您可以创建一个从 Button 类派生的控件来实现该事件. 创建自定义双击事件 创建 ...

  9. Android 自定义View实现单击和双击事件

    自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面 ...

随机推荐

  1. MapReduce 找出共同好友

    这个前提需要注意:好友之间的关系是单向的,我的好友队列里有你,你的里面不一定有我.所以思考方式需要改变. 共同好友: 某两个人的好友队列里都有的人. 第一个mapper 和 reducer 简单说:找 ...

  2. [No0000187]可能是把Java内存区域讲的最清楚的一篇文章

    写在前面(常见面试题) 基本问题: 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针 ...

  3. 用CountDownLatch提升请求处理速度

    countdownlatch是java多线程包concurrent里的一个常见工具类,通过使用它可以借助线程能力极大提升处理响应速度,且实现方式非常优雅.今天我们用一个实际案例和大家来讲解一下如何使用 ...

  4. 深入理解无穷级数和的定义(the sum of the series)

    Given an infinite sequence (a1, a2, a3, ...), a series is informally the form of adding all those te ...

  5. css中display:inline-block display:-moz-inline-box display:-moz-inline-stack 的区别

    很多时候我们必须使一些块元素并排显示,一般想到的是必须使用浮动,但是块元素浮动给边距(margin)的时候在IE下会出现加倍的BUG,所以很多时候不得不把这个块元素套在一个内联元素里面,然后给内联元素 ...

  6. linux下eclipse环境配置的坑

    打开eclipse问题: Q:"could not start goclipse because java version is 0"S:./eclipce -vm /usr/li ...

  7. [skill][http] http管道化连接

    已知http的请求响应是一对一的. 就是一个请求跟着接下来的响应便是与之配对了. 而另一种方式, 可以依靠顺序, 即发送多个http请求, 然后返回对个http响应. 严格按照顺序将他们对应起来, 称 ...

  8. ehlib预览打印的使用

    ehlib支持预览打印功能,可以省去重新制作报表的麻烦,经过一天的努力,基本上解决了这个问题.把解决方法写出来,同行的朋友可以参考,同时为自己做个学习笔记.     首先,需要放置PrintDBGri ...

  9. SecureCRT使用总结

    设置背景和编码

  10. java之String类在堆栈存储机制

    String类是一个比较特殊的类,最主要的体现是它有多种创建形式,例如,String a ="abc";Sting a=new("abc");表面上看得到的结果 ...