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 相关文章推荐
MooBox 基于Mootools的对话框插件
Jan 20 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
详解vue项目的构建,打包,发布全过程
Nov 23 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
Jan 11 Javascript
ES6如何用一句代码实现函数的柯里化
Jan 18 Javascript
谈谈node.js中的模块系统
Sep 01 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
详解javascript void(0)
2020/07/13 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python操作MySQL简单实现方法
2015/01/26 Python
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
Python如何telnet到网络设备
2021/02/18 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
音乐幼师求职信
2014/07/09 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
初二英语教学反思
2016/02/15 职场文书
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python