跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

基于 Vue 3 的双人互动飞行棋游戏实战

基于 Vue 3 和原生 JavaScript 开发的双人互动飞行棋游戏,包含任务系统与平滑动画。支持本地服务器运行,通过 Fetch API 加载任务数据。项目结构清晰,易于扩展自定义任务和样式。适合前端开发者学习 Vue 3 组合式 API 及游戏逻辑实现。

乱七八糟发布于 2026/3/22更新于 2026/7/2337 浏览
基于 Vue 3 的双人互动飞行棋游戏实战

情侣飞行棋前端实现

一款基于 Vue 3 和原生 JavaScript 开发的网页版双人飞行棋游戏,专为情侣设计,融入了趣味任务系统和精美的视觉体验。

项目介绍

情侣飞行棋是经典棋盘游戏的网页实现版本。玩家通过掷骰子决定棋子移动步数,最先到达终点的一方获胜。游戏增加了任务系统,显著提升了互动性和趣味性。

核心玩法

  • 两名玩家轮流掷骰子
  • 掷骰子后触发随机任务
  • 完成或拒绝任务影响棋子移动
  • 最先到达第 64 格的一方获胜

功能特点

游戏功能

  • 双人对战:支持男孩和女孩双人对战模式
  • 智能回合制:随机决定先手玩家,自动轮换回合
  • 骰子系统:随机生成 1-6 的骰子点数
  • 任务系统:每回合随机抽取趣味任务
  • 胜负判定:自动检测并显示获胜方
  • 游戏重置:支持重新开始游戏

视觉体验

  • 现代化 UI 设计:采用柔和渐变配色方案
  • 平滑动画效果:棋子移动、选中状态都有流畅动画
  • 悬停交互:棋子悬停放大效果,增强交互感
  • 响应式布局:完美适配桌面端和移动端
  • 选中高亮:当前回合玩家棋子有脉冲光效
  • 模态窗口:任务弹窗和游戏结束画面精美呈现

技术亮点

  • Vue 3 组合式 API:使用 Composition API 构建响应式数据
  • 模块化设计:游戏逻辑与界面渲染分离
  • 原生 DOM 操作:棋盘生成和棋子移动使用原生 JS
  • CSS 动画系统:纯 CSS 实现丰富动画效果
  • 灵活配置:任务数据外部 JSON 文件,易于扩展

技术栈

技术用途
Vue 3前端框架,处理游戏状态和交互逻辑
HTML5构建游戏界面结构
CSS3样式美化、动画效果、响应式布局
JavaScript (ES6+)游戏核心逻辑、DOM 操作
Fetch API异步加载任务数据

文件结构

飞行棋/
├── img/                 # 图片资源目录
│   ├── boy.jpg          # 男孩玩家头像
│   ├── girl.jpg         # 女孩玩家头像
│   ├── 男性棋子.png     
│   ├── 女性棋子.png     
│   └── ...              
├── tasks/               
│   └── tasks.json       
├── app.js               
├── checkerboard.js      
├── style.css            
├── index.html           
└── README.md            
# 男棋子图片(透明背景)
# 女棋子图片(透明背景)
# 其他资源
# 任务数据目录
# 任务列表数据
# Vue 应用主文件,游戏逻辑控制器
# 棋盘生成和棋子移动逻辑
# 样式文件,界面美化
# HTML 入口文件
# 项目说明文档

tasks.json 为任务列表数据,可自定义修改。示例结构如下:

{
  "title": "36 个问题",
  "description": "亲密关系 36 问",
  "type": "custom",
  "task_count": 36,
  "tasks": [
    "如果可以在世界上所有人中任意选择,你想邀请谁共进晚餐?",
    "你想成名吗?想以什么方式成名?",
    "..."
  ]
}

游戏规则

基本规则

  1. 游戏开始时,两枚棋子都位于第 1 格
  2. 通过掷骰子决定本回合移动步数(1-6 格)
  3. 掷骰子后必须完成随机任务
  4. 完成任务:棋子正常移动
  5. 拒绝任务:棋子后退相应步数
  6. 任何一方棋子最先到达或越过第 64 格即为获胜

回合流程

掷骰子 → 生成骰子点数 → 棋子移动动画 → 触发随机任务 → 玩家选择 → 完成则前进 / 拒绝则后退 → 回合结束

快速开始

环境要求

  • 现代浏览器(Chrome、Firefox、Edge、Safari)
  • 无需后端服务,纯静态网页

启动方式

本地服务器(推荐)

由于浏览器的安全权限限制,直接打开 index.html 无法读取本地 JSON 数据,会导致任务弹窗不显示。建议使用本地服务器运行。

在 VS Code 中,可以通过安装插件或使用内置终端启动简单的 HTTP 服务。

例如使用 Python 启动:

python -m http.server 8000

然后访问 http://localhost:8000。

或者使用 Node.js 的 http-server:

npx http-server

代码中获取任务的逻辑如下,注意路径需正确:

asyncRandomTask() {
  const response = await fetch('./tasks/tasks.json');
  const data = await response.json();
  const tasks = await data.tasks;
  const randomTask = tasks[Math.floor(Math.random() * tasks.length)];
  this.task = randomTask;
  this.showTaskWindow = true;
  console.log(randomTask);
}
游戏操作
  1. 点击「掷骰子」按钮开始回合
  2. 观察骰子点数和棋子移动动画
  3. 根据弹出的任务,选择「完成任务」或「未完成任务」
  4. 回合自动切换给另一名玩家
  5. 重复步骤 1-4,直到分出胜负

样式亮点

棋子视觉效果

  • 悬停效果:棋子悬停时放大 1.15 倍,阴影增强
  • 选中状态:脉冲动画 + 发光效果(男孩蓝色,女孩粉色)
  • 移动动画:棋子移动时有平滑的缩放过渡
  • 透明背景:使用 PNG 透明背景,棋子与棋盘完美融合

配色方案

元素主色强调色
整体背景浅灰渐变#f5f7fa → #e4e8ec
男孩主题蓝色系#667eea → #764ba2
女孩主题粉色系#f0c5d4 系列
按钮紫色渐变#667eea → #764ba2
棋盘格白色渐变#ffffff → #f8fafc

响应式设计

/* 平板设备 */
@media(max-width: 768px) { ... }
/* 手机设备 */
@media(max-width: 480px) { ... }
  • 768px 断点:调整布局、棋子缩小至 40px
  • 480px 断点:进一步优化,棋子缩小至 35px

扩展指南

添加新任务

编辑 tasks/tasks.json 文件,在 tasks 数组中添加内容:

{"tasks": ["给你的伴侣一个拥抱", "说出你们第一次约会的地方", "一起做 10 个深蹲"]}

修改棋子图片

替换 img/ 目录下的图片文件:

  • 男性棋子.png / 男性棋子.jpg:男孩棋子
  • 女性棋子.png / 女性棋子.jpg:女孩棋子

推荐使用透明背景 PNG 图片以获得最佳视觉效果。

自定义样式

在 style.css 中可修改:

  • 棋子尺寸:.piece-img 的 height 和 width
  • 动画速度:transition 和 animation-duration
  • 配色方案:修改对应的 color 和 background

参考资源

项目源码托管于 GitHub: https://github.com/mojoin/CoupleAirplaneGame

Gitee 镜像地址: https://gitee.com/lclIzzxw/CoupleAirplaneGame

在线演示地址(需网络环境支持): https://mojoin.github.io/CoupleAirplaneGame/

目录

  1. 情侣飞行棋前端实现
  2. 项目介绍
  3. 核心玩法
  4. 功能特点
  5. 游戏功能
  6. 视觉体验
  7. 技术亮点
  8. 技术栈
  9. 文件结构
  10. 游戏规则
  11. 基本规则
  12. 回合流程
  13. 快速开始
  14. 环境要求
  15. 启动方式
  16. 本地服务器(推荐)
  17. 游戏操作
  18. 样式亮点
  19. 棋子视觉效果
  20. 配色方案
  21. 响应式设计
  22. 扩展指南
  23. 添加新任务
  24. 修改棋子图片
  25. 自定义样式
  26. 参考资源
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 15. Web可访问性最佳实践:让每个用户都能平等访问
  • 使用 LLaMA-Factory 进行大语言模型微调详解
  • IntelliJ IDEA 5 款必备 AI 插件推荐与配置指南
  • 在 FastGPT 中接入 MCP 工具集:操作指南
  • TCP Socket 网络编程详解:API、多线程与守护进程
  • Qiskit 实战指南:IBM 量子计算开发环境搭建
  • 模板方法模式详解:抽象基类定义算法骨架
  • SRC 漏洞挖掘实战经验与技巧总结
  • Java 常用编译器优劣分析及推荐
  • JavaScript 正则表达式详解
  • 2024 年人工智能中文大模型使用指南
  • Umi 脚手架创建项目实战指南
  • Python 数据分析与可视化全面指南
  • SDXL Prompt Styler 提示词风格增强工具使用指南
  • 在 OpenClaw 中构建专业 AI 角色
  • 时序数据库选型指南:工业物联网场景首选 Apache IoTDB
  • 2026 年春晚机器人行业营销竞争与商业化落地观察
  • 前端首屏加载时间度量:深入理解 FCP、LCP 等核心指标
  • 如何成为一名黑客:态度、技术与文化指南
  • Material Files:Android 上最优雅的开源文件管理器

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online