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 常见学习网站与参考书
Nov 09 Javascript
对jQuery的事件绑定的一些思考(补充)
Apr 20 Javascript
JS嵌套函数调用上下文的问题解决
Mar 26 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
Visual Studio中js调试的方法图解
2014/06/30 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
pycharm 使用心得(五)断点调试
2014/06/06 Python
Python实现的石头剪子布代码分享
2014/08/22 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
Python 修改列表中的元素方法
2018/06/26 Python
flask框架视图函数用法示例
2018/07/19 Python
Python3模拟登录操作实例分析
2019/03/12 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
基于python实现模拟数据结构模型
2020/06/12 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
德国旅游网站:weg.de
2018/06/03 全球购物
教学质量月活动总结
2015/05/11 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js