cocos2d-x C++ (利用定时器自定义屏幕双击事件函数)
//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++ (利用定时器自定义屏幕双击事件函数)的更多相关文章
- bootstrap-treeview 自定义实现双击事件
bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一些继承树结 ...
- WPF 自定义Grid双击事件
先设置Grid_MouseDown事件函数,然后在函数内增加如下代码 ) { //双击执行 } 更改数字可以区别单击和双击 感谢@一 定 会 去 旅 行
- JS如何利用定时器实现长按事件
本篇文章由:http://xinpure.com/js-how-to-use-timer-press-event/ JS 原生事件并没有长按事件,但是我们可以利用一些原有的事件,来实现长按事件 任务需 ...
- 网页开发利用jq自定义鼠标右击事件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
记录一下,好开心,感觉今天自己又学到东西了,对于屏幕双击事件本来还毫无头绪的,今天得以解决总算没白费加班,其实原理很简单:就是在点击事件里做一个判断,这个判断就是需要获取当前系统的时间的毫秒差,第一次 ...
- cocos2dx 3.x(一张背景图利用定时器实现循环轮播)
// // MainScene.hpp // helloworld // // Created by apple on 16/9/19. // // #ifndef MainScene_hpp #de ...
- iOS开发——UI基础-自定义构造方法,layoutSubviews,Xib文件,利用Xib自定义View
一.自定义构造方法 有时候需要快速创建对象,可以自定义构造方法 + (instancetype)shopView { return [[self alloc] init]; } - (instance ...
- C#-创建自定义双击事件
.NET Compact Framework 不支持按钮的 Windows 窗体 DoubleClick 事件.但是您可以创建一个从 Button 类派生的控件来实现该事件. 创建自定义双击事件 创建 ...
- Android 自定义View实现单击和双击事件
自定义View, 1. 自定义一个Runnable线程TouchEventCountThread , 用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面 ...
随机推荐
- Google、微软、Linkedln、Uber、亚马逊等15+海外技术专家聚首2018TOP100Summit
11月30日-12月3日,由msup主办的第七届全球软件案例研究峰会(以下简称为TOP100Summit)将在北京国家会议中心举办.本届峰会以“释放AI生产力,让组织向智能化演进”作为开幕式主题, 4 ...
- 快速排序中的partition.
经典快速排序中的partition, 将最后一个元素作为划分点. 维护两个区域. <= x 的, >x 的区域. 划分过程中还有个待定的区域. [L,less] 区域小于x, [less+ ...
- gensim Word2Vec 训练和使用(Model一定要加载到内存中,节省时间!!!)
训练模型利用gensim.models.Word2Vec(sentences)建立词向量模型该构造函数执行了三个步骤:建立一个空的模型对象,遍历一次语料库建立词典,第二次遍历语料库建立神经网络模型可以 ...
- hbase运行mapreduce设置及基本数据加载方法
hbase与mapreduce集成后,运行mapreduce程序,同时需要mapreduce jar和hbase jar文件的支持,这时我们需要通过特殊设置使任务可以同时读取到hadoop jar和h ...
- 关于Java的基础语法整理
- ORM Active Record Data Mapper
What's the difference between Active Record and Data Mapper? https://www.culttt.com/2014/06/18/whats ...
- Page10:Lyapunov稳定概念及判定定理[Linear System Theory]
内容包含连续和离散系统的Lyapunov稳定概念及其各种判别定理
- [skill][https][ssl/tls] HTTPS相关知识汇总
结论前置: A 身份验证 证书, 服务器证书 B 密钥协商 RSA DHE / ECDHE PSK C 加密通信 加密通信采用对称加密,使用B阶段协商出来的密钥. B 阶段如果使用 RSA 协 ...
- oracle 11g/12c 密码复杂度验证设置
############################################################################### ###### 11g ###### ## ...
- 利用soapui测试http接口(参数化+关联)
一.建立新工程 二.建立测试套件 三.新建用例 四.建立http请求 五.写路径该编码格式 写在这里是因为在请求路径写会把大写的路径默认改为小写 六.参数化.关联 七. ...