(cocos2d-js游戏)測试你的反应速度----------基本逻辑(上)
2023-09-11 14:20:59 时间
游戏玩法:点击開始游戏。等待一个随机时间。然后背景颜色会变(在t1时刻),这时候你须要点击屏幕(在t2时刻),游戏结束。你的反应时间就是天t2-t1。
游戏逻辑:
游戏逻辑非常easy,如上图所看到的。
一共同拥有五个界面,其有用五张图片就能够取代
主要代码:
var MainLayer = cc.LayerColor.extend({ init:function() { //初始化界面 //0:点击開始界面 1:表示等待界面,2:表示在点击界面 3:结果界面 4:Too soon界面 this.flag = 0; this._super(); this.size = cc.Director.getInstance().getWinSize(); this.setColor(cc.c4(180,170,160,255)); this.showToStart(); //可触摸 this.setTouchEnabled(true); }, ///////////////////////////////////////////////// //处理触摸事件 ///////////////////////////////////////////////// onTouchesEnded:function(touches,event) { }, onTouchesBegan:function(touches,event) { cc.log("onTouchsBegan",this.flag); switch(this.flag) { case 0:this.showWaite();break; case 1:this.showToSoon();break; case 2:this.showResult();break; case 3:this.showWaite();break; case 4:this.showWaite();break; } }, //显示点击開始界面 showToStart:function() { this.sprite = cc.Sprite.create(s_ClickToStart); this.sprite.setPosition(this.size.width/2,this.size.height/2); this.addChild(this.sprite,1); this.flag = 0; }, //显示等待界面 showWaite:function() { cc.log("showWaite"); this.removeAllChildren();//清除全部控件 this.unscheduleAllCallbacks();//清除定时器 this.sprite = cc.Sprite.create(s_WaiteForGreen); this.sprite.setPosition(this.size.width/2,this.size.height/2); this.addChild(this.sprite,1); this.anim = cc.Sprite.create(s_WaiteForGreenAnim) this.anim.setPosition(this.size.width/2,this.size.height/2+200); this.addChild(this.anim,1); var action = cc.Sequence.create(cc.FadeOut.create(1.0),cc.FadeIn.create(1.0)); var rep = cc.RepeatForever.create(action); this.anim.runAction(rep); this.flag = 1; //输出1-10的随机数 randomTime = Math.floor(Math.random()*10+1); this.schedule(this.showGreen,randomTime,1,0); //加入定时器 cc.log("randomTime",randomTime); }, //显示点击的页面 showGreen:function() { cc.log("showGreen"); this.sprite = cc.Sprite.create(s_Click); this.sprite.setPosition(this.size.width/2,this.size.height/2); this.addChild(this.sprite,1); this.flag = 2; this.date1 = new Date();//颜色变化后。记录一个时间 }, showToSoon:function() { cc.log("showToSoon"); this.unscheduleAllCallbacks(); this.sprite = cc.Sprite.create(s_TooSoon); this.sprite.setPosition(this.size.width/2,this.size.height/2); this.addChild(this.sprite,1); this.flag = 3; }, //显示结果界面 showResult:function() { this.unscheduleAllCallbacks(); this.date2 = new Date();//记录点击时间 time = this.date2.getTime() - this.date1.getTime(); this.sprite = cc.Sprite.create(s_Result); this.sprite.setPosition(this.size.width/2,this.size.height/2); this.addChild(this.sprite,1); cc.log("showResult",time); this.timeLabel = cc.LabelTTF.create(time+"ms","Arial",70); this.timeLabel.setColor(255,255,255); this.timeLabel.setPosition(this.size.width/2,this.size.height/2) this.addChild(this.timeLabel,1); this.flag = 4; } }); /////////////////////////////////////////////////// var MainScene = cc.Scene.extend({ onEnter:function(){ this._super(); var layer = new MainLayer(); layer.init() this.addChild(layer); } });
相关文章
- h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片
- 工作总结 js 选择器选择多条元素 支持一起设置他们属性 $("#edumes input[type='radio']").prop("checked", false);
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- 【Js】前端使用xlsx.full.min.js读取和导出excel表格数据
- 【JS】js创建Object对象和构造函数的多种方法(综合示例)
- 爬虫之JS的解析确定js的位置
- Vue2.0 引用 exif.js 实现调用摄像头进行拍照功能以及图片上传功能
- js点击显示隐藏
- JS——实现拖拽效果
- 用JS写了一个打字游戏,反正我是通不了关
- JS模式-基本的单例模式
- jQuery验证控件jquery.validate.js的使用介绍
- base.js,通用js方法,Js方法封装
- GIS教程之将 Plotly.js 与 Angular 一起使用
- windows环境下安装nvm、node.js、npm步骤
- JS教程之使用 P5.js 构建一个贪吃蛇游戏(教程含源码)
- 浅谈JS中的call、apply、bind方法
- JS之ajax面试相关
- 聊聊JS动画库:Velocity.js
- 前后端加密解密 【JS加密模块(md5 、 crypto 、 crypto-js、jsencrypt) python RSA加密解密(pycryptodome )模块安装与使用】
- JS: javascript 点击事件执行两次js问题 ,解决jquery绑定click事件出现点击一次执行两次问题
- JS 工具函数 方法(其中js的crc32和php的crc32区别)
- JS 将数字字符串数组转为 数字数组 (互换),js获取数组对象中 某一个key的值,js判断一个数组是否包含另一个数组(一维数组)
- 推荐4款高星星JS库:canvas库-Fabric.js、JavaScript客户端文件上传库-FilePond、客户端保存文件解决方案-FileSaver、JavaScript在线解压 ZIP 文件-JSZip
- 各种素材网站大全【全部倾倒,福利倒计时-JS,HTML,游戏素材,UI,图片素材等
- 华为OD机试 - 单词接龙(JS)
- 【HarmonyOS】【JS】 鸿蒙js开发使用div自带的scroll,滑动条拉不到最下面?
- 鸿蒙开发实例 | ArkUI JS飞机大战游戏开发
- HTML5游戏开发引擎Pixi.js新手入门讲解
- js-原生Js汉语拼音首字母匹配城市名