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

基于 Vue 3 的情侣双人飞行棋游戏源码

介绍一款基于 Vue 3 和原生 JavaScript 开发的双人网页飞行棋游戏。项目包含趣味任务系统、平滑动画及响应式布局。核心玩法为双人对战掷骰子,完成任务可前进,拒绝则后退。支持本地服务器运行,通过 Fetch API 加载任务数据。代码结构清晰,易于扩展任务和样式。

性能调优发布于 2026/4/6更新于 2026/5/2326 浏览
基于 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 # 女棋子图片(透明背景)
│   ├── 终点.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":["如果可以在世界上所有人中任意选择,你想邀请谁共进晚餐?","你想成名吗?想以什么方式成名?","打电话之前你会先排练一下要说什么吗,为什么?","对你来说,\"完美\"的一天是什么样的?","你上次自己唱起歌来是在什么时候,给别人唱呢?","如果你能活到 90 岁,同时可以一直保持 30 岁时的心智或身体,你会选择保持哪一种呢,心智还是身体?","你是否曾经秘密地预感到自己会以怎样的方式死去?","说出三件你和你的伴侣看上去相同的特征。","人生中的什么东西最令你感激?","如果你能改变被抚养成人过程中的一件事,会是哪一件。","花四分钟时间,尽可能详细告诉伴侣你的人生经历。","如果你明天一觉醒来就能拥有某种才能或能力,你希望那会是什么能力呢?","如果有一个水晶球可以告诉你关于自己、人生,未来乃至任何事情的真相,你会想知道吗?","有没有什么事是你一直梦想去做而没有去做的,为什么没有做?","你人生中最大的成就是什么?","在一段友谊之中你最珍视的是什么?","你最宝贵的记忆是什么?","你最糟糕的记忆是什么?","假如你知道自己在一年内就会突然死去,你会改变现在的生活方式吗?为什么?","友谊对于你来说意味着什么?","爱与情感在你生活中扮演着什么样的角色?","和你的伴侣轮流说出心目中对方的一个好品质,每人说五条。","你的家人之间关系是否亲密而温暖,你觉得自己的童年比其他人更快乐吗?","你和母亲之间的关系是怎样的?","每人用\"我们\"造三个句子,并含有实际情况,比如\"我们俩在屋子里,感觉……\"","补完这个句子:\"我希望和某人在一起,分享……\"","如果你想和对方成为亲近的朋友,请告诉对方有什么重要的事情是他或她需要知道的。","告诉对方你喜欢他或她身上的什么东西,要非常诚实,说些你不会对萍水之交说的东西。","和对方分享生命中那些尴尬的时刻。","你上次在别人面前哭是什么时候?自己哭呢?","告诉对方,你已经喜欢上了他或她身上的什么品质。","你觉得什么东西是严肃到不能开玩笑的,假如有的话。","如果你今晚就将死去,而且没有机会同任何人联络,你会因为之前没有对别人说什么话而感到遗憾,你为什么到现在都没有对他们说这些话呢?","假设你拥有的全部东西都在你的房子里,现在房子着了火,救出家人和宠物之后,你还有机会安全地冲进去最后一次,取出最后一件东西,你会拿什么,为什么?","你的家人中,谁去世了会令你最难过,为什么?","说出一件你的个人问题,问对方如果遇到此事要如何解决。另外,也要让对方如实告诉你,在他或她眼中,你对于这个问题的感受是怎样的。"]}

🎯 游戏规则

基本规则
  1. 游戏开始时,两枚棋子都位于第 1 格
  2. 通过掷骰子决定本回合移动步数(1-6 格)
  3. 掷骰子后必须完成随机任务
  4. 完成任务:棋子正常移动
  5. 拒绝任务:棋子后退相应步数
  6. 任何一方棋子最先到达或越过第 64 格即为获胜
回合流程
掷骰子 → 生成骰子点数 → 棋子移动动画 → 触发随机任务 → 玩家选择 → 完成 → 棋子前进 → 回合结束 
拒绝 → 棋子后退 → 回合结束 

📸 界面预览

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

游戏主界面

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

棋子选中效果

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

任务弹窗

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

游戏结束画面

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

🚀 快速开始

环境要求
  • 现代浏览器(Chrome、Firefox、Edge、Safari)
  • 无需后端服务,纯静态网页
启动方式
方式一:直接打开 (bug)
  1. 双击 index.html 文件
  2. 在浏览器中打开即可游玩
方式二:本地服务器(推荐,并不复杂)

以下是源码瞬间获取 tasks.json 获取任务的代码,但是直接打开 index.html 由于浏览器的安全权限,不能读取本地 json 数据,所以你下载源码本地跑,是不会弹窗 (任务列表),需要用以下的方法打开:

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)},

用 vscode 代码,在 index.html 代码处 右击鼠标 显示预览,需要下载插件 Live Preview。

点击后 vscode 就会有以下展示,复制此链接在任意浏览器打开即可,这其实也是本地,但是比类似于以下这个 file:///E 的方法,Live Preview 方法可以访问本地 json 数据:

file:///E:/Test//index.html 

可以正常弹窗。

游戏操作
  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

源码分享

https://github.com/mojoin/CoupleAirplaneGame 
https://gitee.com/lclIzzxw/CoupleAirplaneGame 

注意事项

注意切换不同版本代码。

体验网站 (需要有访问 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. 方式一:直接打开 (bug)
  23. 方式二:本地服务器(推荐,并不复杂)
  24. 游戏操作
  25. 🎨 样式亮点
  26. 棋子视觉效果
  27. 配色方案
  28. 响应式设计
  29. 🔧 扩展指南
  30. 添加新任务
  31. 修改棋子图片
  32. 自定义样式
  33. 源码分享
  34. 注意事项
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 从 XMLHttpRequest 到 Fetch API:前端网络请求演进与迁移指南
  • Visual Studio 2026 GitHub Copilot Agent 模式解析
  • OpenClaw、MaxClaw、KimiClaw 与 Molili 四大 AI Agent 横向评测
  • Llama 3.2 轻量化技术:修剪、蒸馏与移动端部署
  • 基于 Llama Factory 与 Alpaca 数据集的中文模型微调实战
  • PetaLinux 配置 Zynq-7000 PS 端外设实战指南
  • LFM2.5-1.2B-Thinking 打造个人 AI 写作助手指南
  • 机器学习中的逻辑回归
  • 大模型压缩技术详解:量化、剪枝与蒸馏原理
  • 腾讯大模型「实用」路线揭示企业 AI 应用新方向
  • 基于腾讯云服务器、宝塔面板与 Nginx 部署云图库项目
  • Electron 前端桌面应用开发快速入门教程
  • 被工具定义的编程时代:VS Code、Copilot 与 JetBrains 效率实践
  • Flutter 使用 React 风格库在 OpenHarmony 上的适配与实践
  • AI 时代初级开发者的创意生存指南:如何避免被工具化
  • C++ 引用、内联函数与 nullptr:效率提升三大基石
  • Linux 入门:常用命令、软件安装与项目部署指南
  • 低代码新范式:从可视化到意图驱动的架构演进
  • Formality 原语概念解析
  • Vue2.x 使用 SVG 实现不封闭圆形进度条及组件封装

相关免费在线工具

  • 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