基于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 相关文章推荐
js将json格式内容转换成对象的方法
Nov 01 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
JavaScript基础之流程控制语句的用法
Aug 31 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
Dec 26 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
javascript中一些奇葩的日期换算方法总结
Nov 14 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 Javascript
通过js给网页加上水印背景实例
Jun 17 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
JavaScript中的this/call/apply/bind的使用及区别
Mar 06 Javascript
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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
php中异常处理方法小结
2015/01/09 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
pjblog中的UBBCode.js
2007/04/25 Javascript
JavaScript中的类继承
2010/11/25 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
vue实现放大镜效果
2020/09/17 Javascript
从Python的源码来解析Python下的freeblock
2015/05/11 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
简单实现python画圆功能
2018/01/25 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
GMP办公室主任岗位职责
2014/03/14 职场文书
幼儿园家长寄语
2014/04/02 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
篮球赛口号
2014/06/18 职场文书
四年级小学生评语
2014/12/26 职场文书
万里长城导游词
2015/01/30 职场文书
超市食品安全承诺书
2015/04/29 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android