欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Vue 的第一个小项目 "怪物杀手"。

最编程 2024-04-03 21:48:13
...
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Vue Basics</title> <link href="https://fonts.googleapis.com/css2?family=Jost:wght@400;700&display=swap" rel="stylesheet" /> <link rel="stylesheet" href="styles.css" /> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script src="app.js" defer></script> </head> <body> <header> <h1>Monster Slayer</h1> </header> <div id="game"> <!-- 怪物血条 --> <section id="monster" class="container"> <h2>Monster Health</h2> <div class="healthbar"> <div class="healthbar__value" :style="monsterBarWidth"></div> </div> </section> <!-- 玩家血条 --> <section id="player" class="container"> <h2>Your Health</h2> <div class="healthbar"> <div class="healthbar__value" :style="playerBarWidth"></div> </div> </section> <!-- winner中有值(monster||player||draw)时出现游戏结束面板 --> <section class="container" v-if="winner"> <h2>Game Over!</h2> <h3 v-if="winner == 'monster'">You lost!</h3> <h3 v-else-if="winner == 'player'">You won!</h3> <h3 v-else>It`s a draw!</h3> <button @click="startGame">Star New Game</button> </section> <!-- winner还没出现,则显示四个功能按钮 --> <section id="controls" v-else> <button @click="attackMonster">ATTACK</button> <button :disabled="mayUseSpecialAttack" @click="specialAttackMonster"> SPECIAL ATTACK </button> <button @click="healPlayer">HEAL</button> <button @click="surrender">SURRENDER</button> </section> <!-- 对战日志 --> <section id="log" class="container"> <h2>Battle Log</h2> <ul> <li v-for="logMessage in logMessages"> <span :class="{'log--player': logMessage.actionBy === 'player', 'log--monster': logMessage.actionBy === 'monster'}" >{{ logMessage.actionBy === 'player' ? 'Player' : 'Monster' }}</span > <span v-if="logMessage.actionType === 'heal'"> heals himself for <span class="log--heal">{{ logMessage.actionValue }}</span></span > <span v-else> attacks and deals <span class="log--damage">{{ logMessage.actionValue }}</span> </span> </li> </ul> </section> </div> </body> </html>