vue实现打地鼠小游戏


Posted in Javascript onAugust 21, 2020

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

效果图如下:

vue实现打地鼠小游戏

代码如下:

<template>
 <div class="game">
 <h2>打地鼠游戏</h2>
 <div class="wraper">
 <div class="item" v-for="n in TOTAL" :key="n">
 <div :style="{'visibility': random === n ? 'visible' : 'hidden'}" @click="clickItem">{{n}}号地鼠</div>
 </div>
 </div>
 <div class="scoped">
 <div class="set">
 <p>设置参数</p>
 <p>
 速度: <input type="number" v-model="setSpeed">
 </p>
 <p>
 总数:<input type="number" v-model="setNum">
 </p>
 <p>
 <button @click="playGame">开始</button>
 </p>
 </div>
 <div class="count set">
 <h3>统计分数面板</h3>
 <h3>总数: {{TOTAL}}</h3>
 <h3>击中: {{clickNum}}</h3>
 <h3>击中率: {{level}}%</h3>
 </div>
 </div>
 </div>
</template>
 
<script>
 
export default {
 name: 'App',
 data () {
 return {
 clickFlag: true, // 单个地鼠只能点击一次
 setNum: 40, // 绑定设置地洞数量
 setSpeed: 1000, // 绑定设置地鼠出现速度
 speed: 2000, // 地鼠出现速度
 random: '', // 随机出现的地鼠位置
 TOTAL: 40, // 地鼠总数
 count: 0, // 统计总共出现了多少次地鼠同于判断不能大于总数
 clickNum: 0, // 点中地鼠统计
 timmerId: null
 };
 },
 computed: {
 // 统计打中的地鼠数量
 level: function () {
 let num = ((this.clickNum / this.TOTAL) * 100).toFixed(2) || 0;
 return num;
 }
 },
 created () {
 },
 mounted () {
 },
 methods: {
 // 开始游戏
 playGame () {
 this.random = '';
 this.speed = parseInt(this.setSpeed);
 this.TOTAL = parseInt(this.setNum);
 clearInterval(this.timmerId);
 this.timmerId = setInterval(() => {
 this.random = Math.floor(Math.random() * this.TOTAL + 1);
 this.clickFlag = true; // 开放点击
 this.count++;
 if (this.count >= this.TOTAL) {
 clearInterval(this.timmerId);
 }
 }, this.speed);
 },
 // 点击地鼠
 clickItem () {
 if (this.clickFlag) {
 (this.count < this.TOTAL) && this.clickNum++;
 this.clickFlag = false;
 }
 }
 }
};
</script>
<style lang="less" scoped>
.game {
 border: 1px solid #ccc;
 width: 1200px;
 padding: 10px;
 user-select: none;
 &::after {
 content: "";
 display: block;
 clear: both;
 }
 h2 {
 font-size: 16px;
 color: #eee;
 padding: 10px 0;
 margin-bottom: 20px;
 border-bottom: 1px solid #ccc;
 }
 .wraper {
 width: 900px;
 float: left;
 }
 .scoped {
 width: 260px;
 height: 540px;
 float: left;
 padding-left: 15px;
 border-left: 1px solid #ccc;
 h3 {
 font-size: 16px;
 color: #fff;
 }
 .set {
 height: 200px;
 width: 100%;
 border: 1px solid #ccc;
 p {
 padding: 10px;
 text-align: center;
 color: #fff;
 font-size: 16px;
 button {
 width: 90%;
 }
 }
 }
 .count {
 .set;
 margin-top: 20px;
 padding-top: 25px;
 text-align: center;
 line-height: 40px;
 h3 {
 font-weight:normal;
 }
 }
 }
 .item {
 display: inline-block;
 height: 100px;
 width: 100px;
 border-radius: 50px;
 margin: 0 10px 10px 0;
 text-align: center;
 line-height: 100px;
 font-size: 20px;
 border: 1px solid #ccc;
 div {
 height: 100%;
 background: #eee;
 border-radius: 50px;
 }
 }
}
</style>

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

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

Javascript 相关文章推荐
javascript中文本框中输入法切换的问题
Dec 10 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
JavaScript节点及列表操作实例小结
Aug 05 Javascript
基于Jquery和html5的7款个性化地图插件
Nov 17 Javascript
Uploadify上传文件方法
Mar 16 Javascript
JS DOMReady事件的六种实现方法总结
Nov 23 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
Jan 08 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
js中的面向对象入门
Mar 06 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
Nov 25 Javascript
jQuery实现推拉门效果
Oct 19 jQuery
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
vue实现移动端拖动排序
Aug 21 #Javascript
You might like
PHP模拟SQL Server的两个日期处理函数
2006/10/09 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
Highcharts入门之简介
2016/08/02 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
vue中的模态对话框组件实现过程
2018/05/01 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
python正则表达式match和search用法实例
2015/03/26 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
python中字符串的编码与解码详析
2020/12/03 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
建筑文秘专业个人求职信范文
2013/12/28 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
5s推行计划书
2014/05/06 职场文书
活动总结模板
2014/05/09 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2014年标准化工作总结
2014/12/17 职场文书
董事长新年致辞
2015/07/29 职场文书
单位提档介绍信
2015/10/22 职场文书