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 相关文章推荐
Javascript公共脚本库系列(一): 弹出层脚本
Feb 24 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
Nov 23 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
Oct 13 Javascript
javascript中this关键字详解
Dec 12 Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 jQuery
详解webpack多页面配置记录
Jan 22 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
Feb 01 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
说说如何利用 Node.js 代理解决跨域问题
Apr 22 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
Vue-axios-post数据后端接不到问题解决
Jan 09 Javascript
Vue 修改网站图标的方法
Dec 31 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
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
php实现httpclient类示例
2014/04/08 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js获取div高度的代码
2008/08/09 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
python使用webbrowser浏览指定url的方法
2015/04/04 Python
Python 实现简单的电话本功能
2015/08/09 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python hmac模块使用实例解析
2019/12/24 Python
python实现密码强度校验
2020/03/18 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
数控技术专业毕业自荐书范文
2014/02/05 职场文书
党员公开承诺书内容
2014/05/20 职场文书
科技工作者先进事迹
2014/08/16 职场文书
社区节水倡议书
2015/04/29 职场文书
关于五一放假的通知
2015/08/18 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
JS实现数组去重的11种方法总结
2022/04/04 Javascript