vue實現(xiàn)打地鼠小游戲
更新時間:2020年08月21日 14:25:07 作者:#麻辣小龍蝦#
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)打地鼠小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了vue實現(xiàn)打地鼠小游戲的具體代碼,供大家參考,具體內(nèi)容如下
效果圖如下:
代碼如下:
<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>設(shè)置參數(shù)</p> <p> 速度: <input type="number" v-model="setSpeed"> </p> <p> 總數(shù):<input type="number" v-model="setNum"> </p> <p> <button @click="playGame">開始</button> </p> </div> <div class="count set"> <h3>統(tǒng)計分?jǐn)?shù)面板</h3> <h3>總數(shù): {{TOTAL}}</h3> <h3>擊中: {{clickNum}}</h3> <h3>擊中率: {{level}}%</h3> </div> </div> </div> </template> <script> export default { name: 'App', data () { return { clickFlag: true, // 單個地鼠只能點擊一次 setNum: 40, // 綁定設(shè)置地洞數(shù)量 setSpeed: 1000, // 綁定設(shè)置地鼠出現(xiàn)速度 speed: 2000, // 地鼠出現(xiàn)速度 random: '', // 隨機(jī)出現(xiàn)的地鼠位置 TOTAL: 40, // 地鼠總數(shù) count: 0, // 統(tǒng)計總共出現(xiàn)了多少次地鼠同于判斷不能大于總數(shù) clickNum: 0, // 點中地鼠統(tǒng)計 timmerId: null }; }, computed: { // 統(tǒng)計打中的地鼠數(shù)量 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>
更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用 vue 實現(xiàn)滅霸打響指英雄消失的效果附demo
這篇文章主要介紹了使用 vue 實現(xiàn)滅霸打響指英雄消失的效果 demo,需要的朋友可以參考下2019-05-05Vue 2.0學(xué)習(xí)筆記之使用$refs訪問Vue中的DOM
這篇文章主要介紹了Vue 2.0學(xué)習(xí)筆記之使用$refs訪問Vue中的DOM,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12vue elementui 動態(tài)追加下拉框、輸入框功能
這篇文章主要介紹了vue elementui 動態(tài)追加下拉框、輸入框功能,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-04-04VUE+node(express)實現(xiàn)前后端分離
在本篇文章里小編給大家分享的是關(guān)于VUE+node(express)前后端分離實例內(nèi)容,有需要的朋友們參考下。2019-10-10Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)完整代碼
柱狀圖(或稱條形圖)是一種通過柱形的長度來表現(xiàn)數(shù)據(jù)大小的一種常用圖表類型,這篇文章主要給大家介紹了關(guān)于Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)的相關(guān)資料,需要的朋友可以參考下2024-02-02