基于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取文本框中最小值的简单实例
Nov 29 Javascript
jQuery针对各类元素操作基础教程
Aug 29 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
Jan 12 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
javascript事件的绑定基础实例讲解(34)
Feb 14 Javascript
canvas红包照片实例分享
Feb 28 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
js时间戳与日期格式之间相互转换
Dec 11 Javascript
vue-cli 首屏加载优化问题
Nov 06 Javascript
vue项目设置scrollTop不起作用(总结)
Dec 21 Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 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
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
WebPack基础知识详解
2017/01/16 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
Vue实现一个图片懒加载插件
2019/03/11 Javascript
angular 服务随记小结
2019/05/06 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
常见python正则用法的简单实例
2016/06/21 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python制作朋友圈九宫格图片
2019/11/03 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
实习生自荐信范文分享
2013/11/27 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
运动会拉拉队口号
2014/06/09 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
vue+spring boot实现校验码功能
2021/05/27 Vue.js