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 相关文章推荐
date.parse在IE和FF中的区别
Jul 29 Javascript
基于jQuery的前端数据通用验证库
Aug 08 Javascript
Javascript合并表格中具有相同内容单元格示例
Aug 11 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
js给selected添加options的方法
May 06 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
Mar 30 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
Jul 10 Javascript
node.js实现的装饰者模式示例
Sep 06 Javascript
基于Vue实现拖拽效果
Apr 27 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 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
vue实现移动端拖动排序
Aug 21 #Javascript
You might like
php写入、删除与复制文件的方法
2015/06/20 PHP
详解YII关联查询
2016/01/10 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
Javascript - HTML的request类
2006/07/15 Javascript
JS定时器实例
2013/04/17 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
js图片上传的封装代码
2017/08/01 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python中生成Epoch的方法
2017/04/26 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
python删除过期log文件操作实例解析
2018/01/31 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python实现简单的tcp 文件下载
2020/09/16 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
优秀共产党员先进事迹
2014/01/27 职场文书
个人安全承诺书
2014/05/22 职场文书
职工年度考核评语
2014/12/31 职场文书
2015年双拥工作总结
2015/04/08 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android