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 09 Javascript
js 数组的for循环到底应该怎么写?
May 31 Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
JS实现遮罩层效果的简单实例
Nov 12 Javascript
jquery实现仿新浪微博评论滚动效果
Aug 06 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
Oct 30 Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
js计时事件实现圆形时钟
Mar 25 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 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
实用函数5
2007/11/08 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
浅析Python数据处理
2018/05/02 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
于丹论语心得观后感
2015/06/15 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
导游词之昭君岛
2020/01/17 职场文书
实战Python爬虫爬取酷我音乐
2022/04/11 Python
详解flex:1什么意思
2022/07/23 HTML / CSS