菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
48
0

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

原创
05/13 14:22
阅读数 43949
记录一下,好开心,感觉今天自己又学到东西了,对于屏幕双击事件本来还毫无头绪的,今天得以解决总算没白费加班,其实原理很简单;
就是在点击事件里做一个判断,这个判断就是需要获取当前系统的时间的毫秒差,第一次点击的时候直接return,
然后进行第二次点击的时候也进行记录,判断两者之间的时间差,进行函数响应,就可以解决了
1 timeUpdate : function() {
2     var t = new Date();
3     var hours = (t.getHours() > 9) ? t.getHours() : ("0" + t.getHours());//获取系统小时(其实并没有什么卵用)
4     var minutes = (t.getMinutes() > 9) ? t.getMinutes() : ("0" + t.getMinutes());//获取系统分钟(也并没有什么卵用)
5   var seconds = (t.getMilliseconds() > 9) ? t.getMilliseconds() : ("0" + t.getMilliseconds());//这个是毫秒(需要用到哦)
6 var str = "" + hours + ":" + minutes+ ":" +seconds;//拼接起来就是时间了
7     this.tfClock.setString(str);
8 },
 
 1 operateMyTile : function(sender, eventType) {//屏幕点击事件函数处理
 2 
 3     if(this.unlock) {
 4 
 5         if (eventType == ccui.Widget.TOUCH_BEGAN) { //在此处判断,点下触碰生效 Touch_began 
 6             this.newSender = sender.clone();
 7             sender.getParent().addChild(this.newSender, 100);
 8             //var ddd=sender.getPosition();
 9             this.newSender.setScale(1.3);
10             this.timeCount ++ ;
11 
12             var t = new Date();
13              var hours = (t.getHours() > 9) ? t.getHours() : ("0" + t.getHours());//获取当前系统小时
14             // var minutes = (t.getMinutes() > 9) ? t.getMinutes() : ("0" + t.getMinutes());
15             var seconds = t.getMilliseconds();//其实就这一句就可以了
16             //var str = "" + hours + ":" + minutes+ ":" + seconds;
17 
18             this.sender = sender;
19 
20             if(sender.seconds != null){
21                 var ints = t.getMilliseconds() - sender.seconds;
22                 if(1000 > ints){//核心判断在这里(我是判断在1秒内点击两次,1000毫秒等于1秒)
23             //这里的函数可以不用看,在这个判断自定义函数即可
24                     var id = this.upTiles.indexOf(sender);
25                     var moveCard = this.cards[id];
26                     gm.NetData.sendPlayMahjong(moveCard);
27                     this.unSend = false;
28                     this.canOut = false;
29                     this.preemptiveOutTile(id, moveCard);
30                     this.moveTileEndCB();
31                     sender.seconds = null;
32                     this.rankTile();
33                     return;
34                 }
35             }
36             sender.seconds = seconds;
37 
38             this.myTileOldPos = sender.getPosition();
39 
40             var testPos = this.sender.getTouchMovePosition();
41             if (testPos.y > 305) {
42                 cc.log("..........testPos.y = " + testPos.y + " > 305..........");
43             }
44         }
45 
46         else if(eventType == ccui.Widget.TOUCH_MOVED) {
47             if(this.sender != null) {
48                 var pos = this.sender.getTouchMovePosition();
49                 var spacePos = this.sender.getParent().convertToNodeSpace(pos);
50                 this.sender.setPosition(spacePos);
51                 this.newSender.setPosition(spacePos);
52 
53                 if (this.canOut) {
54                     if (pos.y > 305) {
55                         this.imgOutLine.setVisible(true);
56                     } else {
57                         this.imgOutLine.setVisible(false);
58                     }
59                 }
60             }
61         }
62 
63         else {
64             if(this.sender != null) {
65                 cc.log("..........Move Tile End..........");
66 
67                 var finalWorldPos = this.sender.getTouchMovePosition();
68                 var finalPos = this.newSender.getPosition();
69                 var id = this.upTiles.indexOf(this.sender);
70                 var moveCard = this.cards[id];
71 
72                 var moveNum = id - parseInt((this.myTileOldPos.x - finalPos.x) / 67);
73                 (moveNum < 0) ? (moveNum = 0) : moveNum;
74                 (moveNum > this.cards.length) ? (moveNum = this.cards.length - 1) : moveNum;
75 
76                 cc.log("..........canOut = " + this.canOut + "..........");
77                 if (this.canOut && (finalWorldPos.y > 305)) {
78                     cc.log("..........finalWorldPos.y = " + finalWorldPos.y + " > 305..........");
79 
80                     gm.NetData.sendPlayMahjong(moveCard);
81                     this.rankTile();
82                     this.unSend = false;
83                     this.canOut = false;
84                     cc.log("..........Send Play..........");
85                     cc.log("..........this.cards = " + this.cards + "..........");
86 
87                     this.preemptiveOutTile(id, moveCard);
88                 } else {
89                     if (moveCard != undefined) {
90                         this.cards.splice(id, 1);
91                         this.cards.splice(moveNum, 0, moveCard);
92                     }
93                 }
94 
95                 this.moveTileEndCB();
96             }
97         }
98     }
99 },

 

 

发表评论

0/200
48 点赞
0 评论
收藏