cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
记录一下,好开心,感觉今天自己又学到东西了,对于屏幕双击事件本来还毫无头绪的,今天得以解决总算没白费加班,其实原理很简单;
就是在点击事件里做一个判断,这个判断就是需要获取当前系统的时间的毫秒差,第一次点击的时候直接return,
然后进行第二次点击的时候也进行记录,判断两者之间的时间差,进行函数响应,就可以解决了
timeUpdate : function() {
var t = new Date();
var hours = (t.getHours() > 9) ? t.getHours() : ("0" + t.getHours());//获取系统小时(其实并没有什么卵用)
var minutes = (t.getMinutes() > 9) ? t.getMinutes() : ("0" + t.getMinutes());//获取系统分钟(也并没有什么卵用)
var seconds = (t.getMilliseconds() > 9) ? t.getMilliseconds() : ("0" + t.getMilliseconds());//这个是毫秒(需要用到哦)
var str = "" + hours + ":" + minutes+ ":" +seconds;//拼接起来就是时间了
this.tfClock.setString(str);
},
operateMyTile : function(sender, eventType) {//屏幕点击事件函数处理
if(this.unlock) {
if (eventType == ccui.Widget.TOUCH_BEGAN) { //在此处判断,点下触碰生效 Touch_began
this.newSender = sender.clone();
sender.getParent().addChild(this.newSender, 100);
//var ddd=sender.getPosition();
this.newSender.setScale(1.3);
this.timeCount ++ ;
var t = new Date();
var hours = (t.getHours() > 9) ? t.getHours() : ("0" + t.getHours());//获取当前系统小时
// var minutes = (t.getMinutes() > 9) ? t.getMinutes() : ("0" + t.getMinutes());
var seconds = t.getMilliseconds();//其实就这一句就可以了
//var str = "" + hours + ":" + minutes+ ":" + seconds;
this.sender = sender;
if(sender.seconds != null){
var ints = t.getMilliseconds() - sender.seconds;
if(1000 > ints){//核心判断在这里(我是判断在1秒内点击两次,1000毫秒等于1秒)
//这里的函数可以不用看,在这个判断自定义函数即可
var id = this.upTiles.indexOf(sender);
var moveCard = this.cards[id];
gm.NetData.sendPlayMahjong(moveCard);
this.unSend = false;
this.canOut = false;
this.preemptiveOutTile(id, moveCard);
this.moveTileEndCB();
sender.seconds = null;
this.rankTile();
return;
}
}
sender.seconds = seconds;
this.myTileOldPos = sender.getPosition();
var testPos = this.sender.getTouchMovePosition();
if (testPos.y > 305) {
cc.log("..........testPos.y = " + testPos.y + " > 305..........");
}
}
else if(eventType == ccui.Widget.TOUCH_MOVED) {
if(this.sender != null) {
var pos = this.sender.getTouchMovePosition();
var spacePos = this.sender.getParent().convertToNodeSpace(pos);
this.sender.setPosition(spacePos);
this.newSender.setPosition(spacePos);
if (this.canOut) {
if (pos.y > 305) {
this.imgOutLine.setVisible(true);
} else {
this.imgOutLine.setVisible(false);
}
}
}
}
else {
if(this.sender != null) {
cc.log("..........Move Tile End..........");
var finalWorldPos = this.sender.getTouchMovePosition();
var finalPos = this.newSender.getPosition();
var id = this.upTiles.indexOf(this.sender);
var moveCard = this.cards[id];
var moveNum = id - parseInt((this.myTileOldPos.x - finalPos.x) / 67);
(moveNum < 0) ? (moveNum = 0) : moveNum;
(moveNum > this.cards.length) ? (moveNum = this.cards.length - 1) : moveNum;
cc.log("..........canOut = " + this.canOut + "..........");
if (this.canOut && (finalWorldPos.y > 305)) {
cc.log("..........finalWorldPos.y = " + finalWorldPos.y + " > 305..........");
gm.NetData.sendPlayMahjong(moveCard);
this.rankTile();
this.unSend = false;
this.canOut = false;
cc.log("..........Send Play..........");
cc.log("..........this.cards = " + this.cards + "..........");
this.preemptiveOutTile(id, moveCard);
} else {
if (moveCard != undefined) {
this.cards.splice(id, 1);
this.cards.splice(moveNum, 0, moveCard);
}
}
this.moveTileEndCB();
}
}
}
},
cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)的更多相关文章
- js获取当前系统时间
Js获取当前日期时间及其它操作var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份 ...
- js 获取当前系统时间
Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年 ...
- 小程序,用js获取当前系统时间并显示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js 获取当前的时间
第一个小程序,用js获取当前的时间,,比较特殊的是 月是从0开始算的,显示的时候要加1,获取日用getDate(),获取周 getDay(), 直接上代码 <!DOCTYPE html> ...
- JAVA中获取当前系统时间及格式转换
JAVA中获取当前系统时间 一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; publi ...
- Java 获取当前系统时间方法比较
转载: http://blog.csdn.net/zzjjiandan/article/details/8372617 一. 获取当前系统时间和日期并格式化输出: import java.util.D ...
- JAVA中获取当前系统时间
一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...
- LR中获取当前系统时间方法
方法一:使用loadrunner的参数化获取当前时间使用lr的参数化,非常方便,对lr熟悉的各位朋友也能马上上手,时间格式也有很多,可以自由选择.步骤:1.将复制给aa的值参数化2.选中abc,使用右 ...
- 关于Java中获取当前系统时间
一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowStri ...
随机推荐
- okvis代码解读
okvis_timing模块 提供时间转换的功能函数 okvis_util模块 包含 assert_macros.hpp 该文件包含一些有用的断言宏. source_file_pos.hpp 该文件 ...
- autofac生命周期入门(如何避免内存泄漏)
如果你是一个IOC新手,那么生命周期可能会比较难以理解.以至于谈到这个问题时,一些老手也时常表示疑虑和害怕.一个令人不安的问题就是-对象没有在合适的时机被销毁.这样一来内存的使用率就会一直攀升,直到程 ...
- hdu6435 Problem J. CSGO标程讲解以及改正标程的一个错误(本来第一个样例过不了2333) 以及 poj2926 五维曼哈顿距离模板
比赛的时候抄poj2926的模板,但改不来啊orz #include <iostream> #include <cstdio> #include <cstring> ...
- 湘潭大学校赛H-统计颜色 线段树
链接:https://www.nowcoder.com/acm/contest/105/H来源:牛客网 n个桶按顺序排列,我们用1~n给桶标号.有两种操作: 1 l r c 区间[l,r]中的每个桶中 ...
- gitignore 不起作用的解决办法
gitignore 不起作用的解决办法 - sloong - 博客园 https://www.cnblogs.com/sloong/p/5523244.html Administrator@PC-20 ...
- A pointer is a variable whose value is the address of another variable 指针 null pointer 空指针 内存地址0 空指针检验
小结: 1.指针的实际值为代表内存地址的16进制数: 2.不同指针的区别是他们指向的变量.常量的类型: https://www.tutorialspoint.com/cprogramming/c_po ...
- 【python基础】利用pandas处理Excel数据
参考:https://www.cnblogs.com/liulinghua90/p/9935642.html 一.安装第三方库xlrd和pandas 1:pandas依赖处理Excel的xlrd模块, ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- bat删除过期文件(FORFILES)
关键词:bat删除过期文件,bat,FORFILES 原文:https://blog.csdn.net/sandy9919/article/details/82932460 --最佳实践 :: IIS ...
- 链接服务器XXX的OLE DB提供程序“SQLNCLI”无法启动分布式事务“
错误消息msg 7391 16级状态1行1表示 “Msg 7391,Level 16,State 2,Line 1 无法执行该操作,因为链接服务器XXX的OLE DB提供程序“SQLNCLI”无法启动 ...