基于vue实现简易打地鼠游戏


Posted in Javascript onAugust 21, 2020

本文实例为大家分享了vue实现简易打地鼠游戏的具体代码,供大家参考,具体内容如下

基于vue实现简易打地鼠游戏

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title>打地鼠简易版</title>
 <script src="js/vue.js"></script>
 <style type="text/css">
  *{margin: 0;padding: 0;}
  #main{border: 1px solid #000;}
  .ds{ float: left;border: 1px solid #000;box-sizing: border-box;}
  .dd{background-color: #3E8F3E;}
 </style>
 </head>
 <body>
 
 <div id="app">
  <div>倒计时{{t}}</div>
  <div>分数{{fs}}</div>
  <div v-if="t<=0">游戏结束</div>
  <div id="main" v-bind:style="{width:x*w+'px',height:y*h+'px'}">
  <div class="ds" v-bind:class="{dd:v==s}" v-on:click="da(v)" v-for="v in x*y" v-bind:style="{width:w+'px',height:h+'px'}"></div>
  </div>
 </div>
 <script type="text/javascript">
  var vm=new Vue({
  el:'#app',
  data:{
   x:5,//地鼠格列数
   y:5,//地鼠格行数
   w:100,//地鼠格宽度
   h:100,//地鼠格高度
   t:10,//时间
   dsq:null,
   dsq2:null,
   s:0,//地鼠位置
   fs:0,
   ys:true,//用于解决游戏结束点击继续得分问题
   ty:false//用于解决连击得分问题
  },
  methods:{
   da(i){
   if(this.s==i && this.ys && this.ty){
    this.ty=false;
    this.fs++;
   }
   }
  },
  created(){
   this.dsq=setInterval(()=>{
   this.t--;
   if(this.t<=0){
    clearInterval(this.dsq);
    clearInterval(this.dsq2);
    this.ys=false;
   }
   },1000);
   this.dsq2=setInterval(()=>{
   this.ty=true
   this.s=parseInt(Math.random()*this.x*this.y);
   },2000);
  }
  
  })
 </script>
 </body>
</html>

简易升级版,多个地鼠,打对得分,打错扣分

基于vue实现简易打地鼠游戏

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title>打地鼠简易版升级版</title>
 <script src="js/vue.js"></script>
 <style type="text/css">
  *{margin: 0;padding: 0;}
  #main{border: 1px solid #000;}
  .ds{ float: left;border: 1px solid #000;box-sizing: border-box;}
  .dd{background-color: #3E8F3E;}
  .dc{background-color: #AC2925;}
 </style>
 </head>
 <body>
 
 <div id="app">
  <div>倒计时{{t}}</div>
  <div>分数{{fs}}</div>
  <div v-if="t<=0">游戏结束</div>
  <div id="main" v-bind:style="{width:x*w+'px',height:y*h+'px'}">
  <div class="ds" v-bind:class="[arr2[arr1.indexOf(v-1)]==1?'dd':'',arr2[arr1.indexOf(v-1)]==0?'dc':'']" v-on:click="da(v-1)" v-for="v in x*y" v-bind:style="{width:w+'px',height:h+'px'}">{{arr2[arr1.indexOf(v-1)]}}</div>
  </div>
 </div>
 <script type="text/javascript">
  var vm=new Vue({
  el:'#app',
  data:{
   x:5,
   y:5,
   w:100,
   h:100,
   t:30,
   dsq:null,
   dsq2:null,
   s:4,
   fs:0,
   ys:true,
   arr1:[],
   arr2:[],
   arr3:[]
  },
  methods:{
   da(i){
   if(this.arr1.includes(i)&& this.ys && !this.arr3.includes(i)){
    this.arr3.push(i);
    if(this.arr2[this.arr1.indexOf(i)]==1){
    this.fs++;
    }else{
    this.fs--;
    }
   }
   },
   sjs(){
   var cc=parseInt(Math.random()*this.x*this.y);
   if(this.arr1.includes(cc)){
    this.sjs();
   }else{
    this.arr1.push(cc);
    this.arr2.push(parseInt(Math.random()*2));
   }
   }
  },
  created(){
   this.dsq=setInterval(()=>{
   this.t--;
   if(this.t<=0){
    clearInterval(this.dsq);
    clearInterval(this.dsq2);
    this.ys=false;
   }
   },1000);
   this.dsq2=setInterval(()=>{
   this.arr1=[];
   this.arr2=[];
   this.arr3=[];
   for(var i=0;i<this.s;i++){
    this.sjs();
   }
   },2000);
  }
  
  })
 </script>
 </body>
</html>

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 三种不同位置代码的写法
Oct 25 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
Nov 15 Javascript
js 轮播效果实例分享
Dec 28 Javascript
BootStrap select2 动态改变值的方法
Feb 10 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
Node.js使用supervisor进行开发中调试的方法
Mar 26 Javascript
js中Generator函数的深入讲解
Apr 07 Javascript
谈谈JavaScript中的函数
Sep 08 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 jQuery
vue实现打地鼠小游戏
Aug 21 #Javascript
js实现滑动进度条效果
Aug 21 #Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 #Javascript
vue组件开发之tab切换组件使用详解
Aug 21 #Javascript
vue组件开发之slider组件使用详解
Aug 21 #Javascript
Vue左滑组件slider使用详解
Aug 21 #Javascript
vue实现移动端触屏拖拽功能
Aug 21 #Javascript
You might like
PHP中的string类型使用说明
2010/07/27 PHP
header导出Excel应用示例
2014/01/24 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php微信开发之谷歌测距
2018/06/14 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
简单谈谈python中的多进程
2016/11/06 Python
Python中生成Epoch的方法
2017/04/26 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
python实现周期方波信号频谱图
2018/07/21 Python
python 剪切移动文件的实现代码
2018/08/02 Python
python3爬虫怎样构建请求header
2018/12/23 Python
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
先进教师事迹材料
2014/12/16 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL