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 相关文章推荐
jquery iframe操作详细解析
Nov 20 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
bootstrap datetimepicker2.3.11时间插件使用
Nov 19 Javascript
AngularJS Select(选择框)使用详解
Jan 18 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
微信小程序wx.previewImage预览图片实例详解
Dec 07 Javascript
angularjs实现分页和搜索功能
Jan 03 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
IE9 elementUI文件上传的问题解决
Oct 17 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 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文件操作方法汇总
2015/07/01 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
js正确获取元素样式详解
2009/08/07 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
python 自动批量打开网页的示例
2019/02/21 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
python如何提升爬虫效率
2020/09/27 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
新浪网技术部笔试题
2016/08/26 面试题
精彩的推荐信范文
2013/11/26 职场文书
毕业自我评价
2014/02/05 职场文书
就业意向书范文
2014/04/01 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
法院授权委托书范文
2014/08/02 职场文书
离婚协议书范文2015
2015/01/26 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL