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 相关文章推荐
js模拟滚动条(横向竖向)
Feb 22 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
JS设置下拉列表框当前所选值的方法
Dec 22 Javascript
详解Bootstrap插件
Apr 25 Javascript
jQuery简单设置文本框回车事件的方法
Aug 01 Javascript
如何提高数据访问速度
Dec 26 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
Node.js中流(stream)的使用方法示例
Jul 16 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
Dec 19 Javascript
JavaScript判断浏览器版本的方法
Nov 03 Javascript
javascript实现弹幕墙效果
Nov 28 Javascript
浅谈JavaScript作用域
Dec 06 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快递单号查询接口使用示例
2014/05/05 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
Joomla开启SEF的方法
2016/05/04 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
详解Django 中是否使用时区的区别
2018/06/14 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
python http基本验证方法
2018/12/26 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
什么是python的函数体
2020/06/19 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
运动会班级口号
2014/06/09 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
新闻稿件写作范文
2015/07/18 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL