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

基于 Vue 3 的情侣双人飞行棋网页版实现

基于 Vue 3 和原生 JavaScript 开发的双人飞行棋网页项目,包含任务互动系统与平滑动画。通过 Fetch API 异步加载任务数据,解决本地文件读取限制。代码结构清晰,支持自定义任务和样式扩展,适合前端练手或情侣互动娱乐。

技术博主发布于 2026/3/16更新于 2026/6/1329 浏览
基于 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               # Vue 应用主文件,游戏逻辑控制器
├── checkerboard.js      # 棋盘生成和棋子移动逻辑
├── style.css            # 样式文件,界面美化
├── index.html           # HTML 入口文件
└── README.md            # 项目说明文档

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

{
  "title": "36 个问题",
  "description": "亲密关系 36 问",
  "type": "custom",
  "task_count": 36,
  "tasks": [
    "如果可以在世界上所有人中任意选择,你想邀请谁共进晚餐?",
    "你想成名吗?想以什么方式成名?",
    "打电话之前你会先排练一下要说什么吗,为什么?",
    "对你来说,\"完美\"的一天是什么样的?",
    "你上次自己唱起歌来是在什么时候,给别人唱呢?"
  ]
}

游戏规则

基本规则

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

回合流程

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

界面展示

💡 提示:请在游戏运行时截图并替换下方的占位图片

游戏主界面

游戏主界面展示:上方为玩家信息区,中间为掷骰子区域,下方为 8×8 棋盘。

棋子选中效果

当前回合玩家的棋子会有脉冲光效和放大效果。

任务弹窗

每回合结束后弹出随机任务,玩家可选择完成或拒绝。

游戏结束画面

获胜者信息展示,提供重新开始按钮。

运行指南

环境要求

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

启动方式

本地直接打开(存在跨域限制)

双击 index.html 文件在浏览器中打开即可游玩,但无法加载本地 JSON 任务数据。

本地服务器(推荐)

由于浏览器安全策略限制,直接打开 HTML 文件无法请求本地 JSON 资源。因此,必须通过本地服务器启动项目。

推荐使用 VS Code 的 Live Preview 插件启动本地服务。

  1. 安装 Live Preview 插件
  2. 在 index.html 页面右键选择'Open with Live Server'
  3. 复制生成的链接在任意浏览器打开

这种方式可以正常访问本地 JSON 数据,解决跨域问题。

// 获取随机任务的代码示例
async getRandomTask() {
  const response = await fetch('./tasks/tasks.json');
  const data = await response.json();
  const tasks = 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": [
    "给你的伴侣一个拥抱",
    "说出你们第一次约会的地方",
    "一起做 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

注意事项

注意 main 分支为初始版本,建议切换至稳定分支进行开发。

在线演示地址(需访问 GitHub): 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. 配色方案
  27. 响应式设计
  28. 扩展与定制
  29. 添加新任务
  30. 修改棋子图片
  31. 自定义样式
  32. 开源地址
  33. 注意事项
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Java Web 学习:前端 HTML 基础与常用标签
  • 前端实现记住密码功能的原理与方案
  • GitHub 访问速度优化:本地 hosts 配置与 DNS 刷新指南
  • LazyLLM 多 Agent 应用全流程实践:从源码部署到可视化 Web 调试的低代码方案
  • AI 基础核心概念:Prompt、Agent、Function Calling 及 RAG 解析
  • 构建 AI 逆向 MCP:使用 MCP 辅助 JS 逆向分析
  • 基于视觉语言动作的竞速无人机自主导航 RaceVLA 深度解析
  • 2.5D 等距透视废墟建筑 AIGC 辅助量产工作流
  • 学得会、做得出、能展示!12493+基于Web的校园二手商品交易系统设计与实现 全套资料打包送,学习更高效!
  • Neo4j 图数据库核心特性与 K8s 集群部署实战
  • 单 Agent 与多 Agent 架构对比及选型指南
  • JavaScript 网络请求实战:GET 与 POST 方法详解
  • YOLOv10n-GoldYolo 多旋翼无人机目标检测与识别实战指南
  • JetBrains Copilot Agent Mode + MCP 配置与实战指南
  • 轻小说机翻机器人:日语小说自动翻译工具搭建
  • WSL 中 VS Code Remote 连接 GitHub Copilot 代理配置问题
  • 网络爬虫技术原理、攻防博弈与法律风险解析
  • 基于 Llama-Factory 的 ASR 转写文本润色方案
  • OpenClaw 多机器人多 Agent 模式解析
  • GitHub Copilot 学生认证指南:零基础免费使用 AI 编程助手

相关免费在线工具

  • 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