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 相关文章推荐
formvalidator验证插件中有关ajax验证问题
Jan 04 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 Javascript
JavaScript获取select中text值的方法
Feb 13 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 Javascript
JavaScript的词法结构精华篇
Oct 17 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
JS函数基本定义与用法示例
Jan 15 Javascript
vue生命周期钩子函数以及触发时机
Apr 26 Vue.js
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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
window.open()弹出居中的窗口
2007/02/01 Javascript
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Django数据库表反向生成实例解析
2018/02/06 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
您的网上新华书店:文轩网
2016/08/24 全球购物
财务工作个人求职的自我评价
2013/12/19 职场文书
学校标语大全
2014/06/19 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
团日活动总结格式
2015/05/11 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python