切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
Cocos2d-x
cocos2dx touch 单击、双击、三连击和长按事件处理
cocos2dx touch 单击、双击、三连击和长按事件处理
2019-05-18
Cocos2d-x
前端之家
前端之家
收集整理的这篇文章主要介绍了
cocos2dx touch 单击、双击、三连击和长按事件处理
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
分类
:
cocos2d-x
2014-04-11 22:30
1435人阅读
评论
(0)
收藏
举报
cocos2dx
[cpp]
view plain
copy
print
?
#include"TouchTest.h"
TouchTest::TouchTest()
{
m_longProgress=
false
;
}
bool
isTouch=
false
;
bool
isMoved=
int
pressTimes=0;
int
touchCounts=0;
void
TouchTest::updateSingleDelay(
float
ft)
{
if
(touchCounts==1){
onSingleCLick();
touchCounts=0;
}
void
TouchTest::updateDoubleDelay(
float
ft)
if
(touchCounts==2)
onDoubleClick();
void
TouchTest::updatelongprogress(
if
(isTouch){
pressTimes++;
if
(pressTimes>=2){
true
;
onLongPressed();
else
pressTimes=0;
long
long
TouchTest::getCurrentTime()
struct
timeval
tm
;
gettimeofday(&
tm
,NULL);
return
(
long
)(
tm
.tv_sec*1000+
tm
.tv_usec/1000);
bool
TouchTest::touchBegan(cocos2d::Touch*touch,cocos2d::Event*event)
m_startPoint=touch->getLocation();
isTouch=
m_startTime=getCurrentTime();
//处理长按事件
this
->schedule(schedule_selector(TouchTest::updatelongprogress),1);
return
true
;
void
TouchTest::touchMoved(cocos2d::Touch*touch,cocos2d::Event*event)
isMoved=
PointcurPoint=touch->getLocation();
onMove(curPoint);
void
TouchTest::touchEnded(cocos2d::Touch*touch,255); font-weight:bold; background-color:inherit">this
->unschedule(schedule_selector(TouchTest::updatelongprogress));
//如果刚完成长按事件则把按下
次数
清零长按状态置空直接返回不继续执行
if
(m_longProgress){
return
;
m_endPoint=touch->getLocation();
long
endTime=getCurrentTime();
long
timeDis=endTime-m_startTime;
E_SWIP_DIRdir=GetSwipDir(m_startPoint,m_endPoint,timeDis);
if
(dir!=E_INVAILD){
onSwip(m_startPoint,dir);
return
;
//做连击判断
if
(isMoved){
if
(touchCounts==2){
onThreeClick();
else
this
->scheduleOnce(schedule_selector(TouchTest::updateDoubleDelay),0.25);
touchCounts++;
if
(touchCounts==0){
this
->scheduleOnce(schedule_selector(TouchTest::updateSingleDelay),255); background-color:inherit">}
@H_
404
_375@
#include<iostream>
#include"cocos2d.h"
USING_NS_CC;
const
int
minSwipdistance=100;
int
minSwiptime=1000;
//毫秒
int
maxClickedDis=20;
enum
E_SWIP_DIR
E_INVAILD,
E_LEFT,
E_RIGHT,255); background-color:inherit">E_UP,255); background-color:inherit">E_DOWN
};
class
TouchTest:
public
Layer
public
:
TouchTest();
bool
touchBegan(Touch*touch,Event*event);
void
touchMoved(Touch*touch,Event*event);
void
touchEnded(Touch*touch,255); font-weight:bold; background-color:inherit">void
touchCancel(Touch*touch,255); font-weight:bold; background-color:inherit">void
onTouchesBegan(
const
std::vector<Touch*>&touches,Event*unused_event);
void
onTouchesMoved(
void
onTouchesEnded(
void
onTouchesCancelled(
void
updateSingleDelay(
float
);
void
updateDoubleDelay(
float
);
void
updatelongprogress(
long
getCurrentTime();
void
stopSchedule();
private
:
E_SWIP_DIRGetSwipDir(Pointstart,Pointend,
long
timeDis);
public
:
virtual
void
onSingleCLick();
//单击
void
onDoubleClick();
//双击
void
onThreeClick();
//3连击
void
onLongPressed();
//长按
void
onMove(Point);
//移动
void
onSwip(Point,Point,E_SWIP_DIR);
//滑动
原文链接:https://www.f2er.com/cocos2dx/345411.html
上一篇:Cocos2dx3.0过渡篇(三)触摸机制C
下一篇:cocos2dx学习之自定义你的CCSprite
猜你在找的Cocos2d-x相关文章
创建自定义的Cocos2d-x场景
操作步骤 1、创建cocos2d-x工程 2、新建 Scene1.cpp Scene1.h Scene1.h代码 #ifndef __SCE...
作者:前端之家 时间:2021-01-27
给vs2010安装上cocos2d-x的模版
开发环境:OS(WINDOWS 8.1 X64 企业版) cocos2d-x 2.2.1 vs2010 想给vs安装上cocos的模版,...
作者:前端之家 时间:2021-01-27
Python创建Cocos2d-x 2.2方法
把创建项目做成一个批处理,当创建项目时可以省时省力很多。 操作步骤 1、在 E:cocos2d-x-...
作者:前端之家 时间:2021-01-27
cocos2dx 物理碰撞
https://www.cnblogs.com/JiaoQing/p/3906780.html 四个响应函数 1 EventListenerPhysics...
作者:前端之家 时间:2020-08-06
cocos2d-js 自定义事件监听派发
转载于 http://www.cnblogs.com/kenkofox/p/3926797.html 熟悉js的dom事件或者flash事件的...
作者:前端之家 时间:2020-08-06
cocos常用 实用 公共函数 lua代码
公共资源加载,缓存retain;防止被自动销毁 2. 数字滚动递增;用于得奖后,总金币跳动增加...
作者:前端之家 时间:2020-08-06
cocos creator box2d
title Map 使用box2d var sfloors = this.tiledMap.getObjectGroup(‘Special_Floor‘).g...
作者:前端之家 时间:2020-08-06
(转)让quick-cocos2d-x支持加密的plist文件
前篇:quick-cocos2d-x图片资源加密 在前篇里面,我们实现了图片资源的加密,但还没有实现...
作者:前端之家 时间:2020-08-06
(转)quick-cocos2d-x图片资源加密(续)
摘要: 对在quick-cocos2d-x上实现的资源加密方法的补充 前篇: quick-cocos2d-x图片资源加...
作者:前端之家 时间:2020-08-06
Cocos Creator 动态改变sprite图片
首先将存放图片最外层文件夹命名为resources changeBj: function(){ var url...
作者:前端之家 时间:2020-08-06
编程分类
iOS
Android
Swift
Hybrid
Cocos2d-x
Flutter
Xcode
Silverlight
cocoa
Cordova
最新文章
• 创建自定义的Cocos2d-x场景
• 给vs2010安装上cocos2d-x的
• Python创建Cocos2d-x 2.2方
• cocos2dx 物理碰撞
• cocos2d-js 自定义事件监听
• cocos2dx 分帧加载
• cocos常用 实用 公共函数
• cocos creator box2d
• (转)让quick-cocos2d-x支
• (转)quick-cocos2d-x图片
热门标签
更多 ►
调试桥
筛选栏
假异步
不会丢失
AndPermissio
权限申请
抽屉式
systemUI
信号栏
多行排列
跨多行显示
viewmode
数据共享
录制语音
视频通话
多行显示
Studio3.5
拉伸控件
望远镜
发动态
走势图
点赞控件
显示牌
冷启动
v3签名
v2签名
v1签名
本地html
外接键盘
流式标签