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 相关文章推荐
Prototype 学习 工具函数学习($w,$F方法)
Jul 12 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
Feb 12 Javascript
设置点击文本框或图片弹出日历控件的实现代码
May 12 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
Oct 05 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
May 23 Javascript
浅析JS中常用类型转换及运算符表达式
Jul 23 Javascript
vue2.0 常用的 UI 库实例讲解
Dec 12 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 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输出表格的实现代码(修正版)
2010/12/29 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
javascript call方法使用说明
2010/01/11 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
JS中的phototype详解
2017/02/04 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
python的Template使用指南
2014/09/11 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
探究python中open函数的使用
2016/03/01 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
优秀研究生主要事迹
2014/06/03 职场文书
销售代理协议书
2014/09/30 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
财务部岗位职责范本
2015/04/14 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL