# StitchPin **Repository Path**: ujq/StitchPin ## Basic Information - **Project Name**: StitchPin - **Description**: 见缝插针 Cocos3.8.8 小游戏 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-19 - **Last Updated**: 2026-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: cocos ## README # 🏹 射箭小游戏 基于 Cocos Creator 3.8.8 开发的 2D 射箭休闲游戏。 ## 📖 项目简介 玩家通过点击屏幕发射箭矢,箭矢会飞向旋转的圆盘靶并粘附在靶上。目标是在箭矢不互相碰撞的情况下,成功将指定数量的箭射入靶中。 ## 🎮 游戏玩法 1. **点击屏幕** - 发射箭矢 2. **箭矢飞行** - 箭会自动飞向旋转的圆盘靶 3. **粘附机制** - 箭命中靶后会粘附在靶上并随靶旋转 4. **碰撞检测** - 如果新射出的箭与已粘附的箭发生碰撞,则游戏失败 5. **胜利条件** - 成功射入指定数量的箭即可获胜 ## 📁 项目结构 ``` 2d/ ├── assets/ │ ├── Code/ # 游戏脚本代码 │ │ └── Player.ts # 玩家控制脚本(核心逻辑) │ ├── Music/ # 音频资源 │ │ ├── 背景.mp3 # 背景音乐 │ │ ├── 打中.mp3 # 命中音效 │ │ ├── 成功.mp3 # 胜利音效 │ │ └── 失败.mp3 # 失败音效 │ ├── Prefab/ # 预制体 │ │ └── Arrow.prefab # 箭预制体 │ ├── Scene/ # 场景文件 │ │ └── c1.scene # 游戏主场景 │ └── UI/ # UI 资源 │ ├── Arrow.png # 箭贴图 │ ├── BG.png # 背景贴图 │ ├── Target.png # 靶贴图 │ ├── Start.png # 开始按钮贴图 │ └── Start_A.anim # 开始按钮动画 ├── settings/ # 项目配置 ├── package.json # 项目配置文件 └── tsconfig.json # TypeScript 配置 ``` ## 🔧 核心功能 ### 1. 圆盘旋转系统 - 圆盘持续旋转,增加游戏难度 - 可配置旋转速度(`Angle_Speed`) ### 2. 箭矢发射系统 - 触摸/点击屏幕发射箭矢 - 箭矢使用 Tween 动画平滑飞向目标 - 发射后自动关闭触摸监听,防止连发 ### 3. 碰撞检测系统 - 使用 Cocos Creator 内置 2D 物理引擎 - 箭预制体配备 `PolygonCollider2D` 多边形碰撞体 - 碰撞触发后判定游戏失败 ### 4. 粘附机制 - 箭命中后获取世界坐标 - 将箭设置为圆盘的子节点 - 保持箭的世界坐标不变,实现粘附效果 - 箭的旋转角度与圆盘反向,保持正确朝向 ### 5. 音频系统 - 命中音效 - 成功音效 - 失败音效 - 使用 `AudioSource` 组件动态播放 ### 6. UI 提示系统 - 游戏结束提示框 - 当前进度显示 - 重新开始按钮及动画 ## 🚀 开发环境 - **引擎版本**: Cocos Creator 3.8.8 - **编程语言**: TypeScript - **物理引擎**: Cocos Creator 内置 2D 物理系统 ## 📝 开发说明 ### 运行项目 1. 使用 Cocos Creator 3.8.8 打开项目 2. 在编辑器中打开场景 `assets/Scene/c1.scene` 3. 点击编辑器顶部的 **预览** 按钮运行游戏 ### 项目配置 - **关闭多点触摸**: 项目 -> 项目设置 -> 宏配置 -> `ENABLE_MULTI_TOUCH = false` - **开启 2D 物理引擎**: 项目 -> 项目设置 -> 功能裁剪 -> 2D 物理引擎 -> 内置 2D 物理系统 ### 核心脚本 [Player.ts](file:///d:/project/cocos/2d/assets/Code/Player.ts) 是游戏的核心控制脚本,包含以下主要功能: | 功能模块 | 方法/属性 | 说明 | |---------|----------|------| | 圆盘旋转 | `Target_Node`, `Angle`, `Angle_Speed` | 控制目标圆盘的旋转 | | 箭矢生成 | `Arrow_Prefab`, `Arrow_Top_Node` | 管理箭预制体的实例化 | | 触摸事件 | `TOUCH_START()` | 处理玩家点击发射箭矢 | | 粘附逻辑 | `Arrow_To_Target()` | 箭命中后粘附到圆盘 | | 碰撞检测 | `BEGIN_CONTACT()` | 处理箭之间的碰撞 | | UI 提示 | `Tips_UI()` | 显示游戏结果提示 | | 音频播放 | `Hit_Audio_Play()`, `Win_Audio_Play()`, `Fail_Audio_Play()` | 播放各类音效 | | 重新开始 | `Restart_Game()` | 重新加载场景 | ## 🎯 游戏参数配置 在 `Player.ts` 脚本中可调整以下参数: - `Angle_Speed`: 圆盘旋转速度(默认 50) - `All_Num`: 胜利所需箭数(默认 3) - Tween 动画时间:箭飞行时间(默认 0.1 秒) ## 📄 许可证 本项目仅供学习参考。