Skip to content

Commit f7341f9

Browse files
committed
ci: 添加多平台自动构建流水线,准备发布版本
1 parent 0cfb997 commit f7341f9

107 files changed

Lines changed: 575 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: 多平台自动构建打包
2+
3+
on:
4+
push:
5+
branches: [ feat/map-difficulty-scaling, main ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
strategy:
11+
matrix:
12+
os: [ubuntu-latest, windows-latest, macos-latest]
13+
include:
14+
- os: ubuntu-latest
15+
artifact_name: bevy_card_battler_linux
16+
binary_path: target/release/bevy_card_battler
17+
- os: windows-latest
18+
artifact_name: bevy_card_battler_windows
19+
binary_path: target/release/bevy_card_battler.exe
20+
- os: macos-latest
21+
artifact_name: bevy_card_battler_macos
22+
binary_path: target/release/bevy_card_battler
23+
24+
runs-on: ${{ matrix.os }}
25+
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: 安装 Rust 工具链
30+
uses: dtolnay/rust-toolchain@stable
31+
32+
- name: 缓存 Rust 依赖
33+
uses: Swatinem/rust-cache@v2
34+
35+
- name: 安装 Linux 依赖 (仅 Ubuntu)
36+
if: matrix.os == 'ubuntu-latest'
37+
run: |
38+
sudo apt-get update
39+
sudo apt-get install -y g++ pkg-config libx11-dev libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
40+
41+
- name: 执行 Release 编译
42+
run: cargo build --release
43+
44+
- name: 准备打包目录
45+
shell: bash
46+
run: |
47+
mkdir -p build_dist
48+
cp ${{ matrix.binary_path }} build_dist/
49+
cp -r assets build_dist/
50+
51+
- name: 上传构建产物
52+
uses: actions/upload-artifact@v4
53+
with:
54+
name: ${{ matrix.artifact_name }}
55+
path: build_dist/
Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
# 游戏音效资源获取指南
2+
3+
> **状态**: 音效占位符待替换
4+
> **测试文件**: `tests/sound_effects_tdd.rs`
5+
> **更新日期**: 2026-01-29
6+
7+
---
8+
9+
## 📋 音效对照表
10+
11+
### 卡牌相关音效
12+
13+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
14+
|--------|----------|--------|------|----------|------|
15+
| `CardPlay` | 出牌音效 | `card_play.ogg` | 0.5-1s | 动漫卡牌出牌声 | ⏳ 占位符 |
16+
| `DrawCard` | 抽牌音效 | `draw_card.ogg` | 0.3-0.5s | 扑克牌抽牌声 | ⏳ 占位符 |
17+
| `ShuffleCard` | 洗牌音效 | `shuffle_card.ogg` | 0.5-1s | 扑克牌洗牌声 | ⏳ 占位符 |
18+
| `CardHover` | 卡牌悬停 | `card_hover.ogg` | 0.2-0.3s | 轻微魔法声 | ⏳ 占位符 |
19+
| `CardSelect` | 卡牌选中 | `card_select.ogg` | 0.3-0.5s | 确认提示音 | ⏳ 占位符 |
20+
21+
### 战斗相关音效
22+
23+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
24+
|--------|----------|--------|------|----------|------|
25+
| `PlayerAttack` | 玩家攻击 | `player_attack.ogg` | 0.5-1s | 武器挥砍/剑击声 | ⏳ 占位符 |
26+
| `PlayerHit` | 玩家受击 | `player_hit.ogg` | 0.3-0.5s | 受伤呻吟/撞击声 | ⏳ 占位符 |
27+
| `EnemyHit` | 敌人受击 | `enemy_hit.ogg` | 0.3-0.5s | 打击音效 | ⏳ 占位符 |
28+
| `Block` | 格挡音效 | `block.ogg` | 0.3-0.5s | 金属/盾牌格挡声 | ⏳ 占位符 |
29+
| `CriticalHit` | 暴击音效 | `critical_hit.ogg` | 0.5-1s | 强力打击+重击声 | ⏳ 占位符 |
30+
| `Dodge` | 闪避音效 | `dodge.ogg` | 0.3-0.5s | 风声/快速移动声 | ⏳ 占位符 |
31+
32+
### 法术/技能音效
33+
34+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
35+
|--------|----------|--------|------|----------|------|
36+
| `LightningStrike` | 天雷落下 | `lightning_strike.ogg` | 1-2s | 雷声+电击声 | ⏳ 占位符 |
37+
| `FireSpell` | 火焰法术 | `fire_spell.ogg` | 0.5-1s | 火焰燃烧声 | ⏳ 占位符 |
38+
| `IceSpell` | 冰霜法术 | `ice_spell.ogg` | 0.5-1s | 冰冻破碎声 | ⏳ 占位符 |
39+
| `Heal` | 治疗音效 | `heal.ogg` | 0.5-1s | 圣光/恢复声 | ⏳ 占位符 |
40+
| `BuffApply` | 增益施加 | `buff_apply.ogg` | 0.3-0.5s | 能量上升声 | ⏳ 占位符 |
41+
| `DebuffApply` | 减益施加 | `debuff_apply.ogg` | 0.3-0.5s | 负面魔法声 | ⏳ 占位符 |
42+
| `ShieldUp` | 护盾升起 | `shield_up.ogg` | 0.3-0.5s | 能量护盾声 | ⏳ 占位符 |
43+
44+
### 大招/终极技能音效
45+
46+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
47+
|--------|----------|--------|------|----------|------|
48+
| `UltimateStart` | 大招起手 | `ultimate_start.ogg` | 1-2s | 能量聚集+前摇 | ⏳ 占位符 |
49+
| `UltimateRelease` | 大招释放 | `ultimate_release.ogg` | 2-3s | 强力爆发声 | ⏳ 占位符 |
50+
| `SwordStrike` | 剑气斩击 | `sword_strike.ogg` | 1-2s | 剑气破空声 | ⏳ 占位符 |
51+
| `ThousandSwords` | 万剑归宗 | `thousand_swords.ogg` | 3-5s | 多重剑击+华丽爆发 | ⏳ 占位符 |
52+
53+
### UI交互音效
54+
55+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
56+
|--------|----------|--------|------|----------|------|
57+
| `UiClick` | UI点击 | `ui_click.ogg` | 0.1-0.2s | 清脆点击声 | ⏳ 占位符 |
58+
| `UiHover` | UI悬停 | `ui_hover.ogg` | 0.1-0.15s | 轻微提示音 | ⏳ 占位符 |
59+
| `UiConfirm` | UI确认 | `ui_confirm.ogg` | 0.2-0.3s | 肯定/成功提示 | ⏳ 占位符 |
60+
| `UiCancel` | UI取消 | `ui_cancel.ogg` | 0.2-0.3s | 取消/返回提示 | ⏳ 占位符 |
61+
| `UiError` | UI错误 | `ui_error.ogg` | 0.3-0.5s | 错误/失败提示 | ⏳ 占位符 |
62+
63+
### 系统/事件音效
64+
65+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
66+
|--------|----------|--------|------|----------|------|
67+
| `BreakthroughStart` | 突破开始 | `breakthrough_start.ogg` | 1-2s | 能量聚集声 | ⏳ 占位符 |
68+
| `BreakthroughSuccess` | 突破成功 | `breakthrough_success.ogg` | 2-3s | 成功+升级声 | ⏳ 占位符 |
69+
| `LevelUp` | 升级音效 | `level_up.ogg` | 1-2s | 升级+正反馈 | ⏳ 占位符 |
70+
| `GoldGain` | 获得金币 | `gold_gain.ogg` | 0.5-1s | 金币掉落声 | ⏳ 占位符 |
71+
| `RelicObtain` | 获得遗物 | `relic_obtain.ogg` | 1-2s | 稀有物品获得 | ⏳ 占位符 |
72+
| `Victory` | 战斗胜利 | `victory.ogg` | 2-3s | 胜利欢呼/正反馈 | ⏳ 占位符 |
73+
| `Defeat` | 战斗失败 | `defeat.ogg` | 2-3s | 失败音效 | ⏳ 占位符 |
74+
75+
### 敌人相关音效
76+
77+
| 音效ID | 中文名称 | 文件名 | 时长 | 推荐来源 | 状态 |
78+
|--------|----------|--------|------|----------|------|
79+
| `EnemySpawn` | 敌人生成 | `enemy_spawn.ogg` | 0.5-1s | 出现/召唤声 | ⏳ 占位符 |
80+
| `EnemyDeath` | 敌人死亡 | `enemy_death.ogg` | 0.5-1s | 死亡/消散声 | ⏳ 占位符 |
81+
| `BossAppear` | Boss登场 | `boss_appear.ogg` | 2-3s | Boss威压+登场 | ⏳ 占位符 |
82+
| `BossDeath` | Boss死亡 | `boss_death.ogg` | 3-5s | Boss死亡+华丽消散 | ⏳ 占位符 |
83+
84+
---
85+
86+
## 🔗 推荐音效资源网站
87+
88+
### 免费音效网站
89+
90+
| 网站 | URL | 说明 |
91+
|------|-----|------|
92+
| **Freesound** | https://freesound.org | 最大的免费音效库,需注册 |
93+
| **Zapsplat** | https://www.zapsplat.com | 大量免费音效,需署名 |
94+
| **Mixkit** | https://mixkit.co/free-sound-effects | 免费音效,无需署名 |
95+
| **Pixabay** | https://pixabay.com/sound-effects | 免费音效和音乐 |
96+
| **OpenGameArt** | https://opengameart.org | 游戏音效资源 |
97+
| ** Sonniss** | https:// Sonniss.com | 年度免费音效包 |
98+
99+
### 付费音效网站
100+
101+
| 网站 | URL | 说明 |
102+
|------|-----|------|
103+
| **AudioJungle** | https://audiojungle.net | Envato市场,音效质量高 |
104+
| **Pond5** | https://www.pond5.com | 专业音效库 |
105+
| **Epidemic Sound** | https://www.epidemicsound.com | 订阅制,商用友好 |
106+
107+
### 中国音效网站
108+
109+
| 网站 | URL | 说明 |
110+
|------|-----|------|
111+
| **爱给网** | https://www.aigei.com | 中文音效资源站 |
112+
| **配音秀** | https://www.peiyinxiu.com | 音效和配音资源 |
113+
| **淘声网** | https://www.tosound.com | 免费音效搜索 |
114+
115+
---
116+
117+
## 📝 音效搜索关键词
118+
119+
### 通用关键词
120+
- `chinese fantasy` `wuxia` `xianxia` `martial arts`
121+
- `sword` `magic` `spell` `impact` `whoosh`
122+
- `game sfx` `rpg sfx` `ui sfx`
123+
124+
### 特定搜索
125+
- `card draw sound` `shuffle cards` `card play`
126+
- `sword attack` `fire spell` `ice spell` `lightning`
127+
- `heal magic` `buff sound` `shield up`
128+
- `level up` `victory` `boss death` `gold coin`
129+
130+
---
131+
132+
## 🔧 音效编辑建议
133+
134+
### 推荐工具
135+
136+
| 工具 | 平台 | 用途 |
137+
|------|------|------|
138+
| **Audacity** | 跨平台 | 免费,基础编辑 |
139+
| **Adobe Audition** | Win/Mac | 专业音频编辑 |
140+
| **GarageBand** | macOS | Mac自带,简单编辑 |
141+
| **Ocenaudio** | 跨平台 | 轻量级音频编辑 |
142+
143+
### 编辑要点
144+
145+
1. **格式**: 统一转换为 OGG Vorbis 格式
146+
2. **采样率**: 44.1kHz 或 48kHz
147+
3. **比特率**: 192-320 kbps
148+
4. **声道**: 立体声
149+
5. **音量**: 标准化至 -3dB 到 -1dB
150+
6. **长度**: 根据对照表要求裁剪
151+
7. **淡入淡出**: 头尾添加 0.01-0.05秒淡入淡出,避免爆音
152+
153+
---
154+
155+
## 📁 文件结构
156+
157+
```
158+
assets/audio/sfx/
159+
├── 卡牌相关/
160+
│ ├── card_play.ogg
161+
│ ├── draw_card.ogg
162+
│ ├── shuffle_card.ogg
163+
│ ├── card_hover.ogg
164+
│ └── card_select.ogg
165+
├── 战斗相关/
166+
│ ├── player_attack.ogg
167+
│ ├── player_hit.ogg
168+
│ ├── enemy_hit.ogg
169+
│ ├── block.ogg
170+
│ ├── critical_hit.ogg
171+
│ └── dodge.ogg
172+
├── 法术技能/
173+
│ ├── lightning_strike.ogg
174+
│ ├── fire_spell.ogg
175+
│ ├── ice_spell.ogg
176+
│ ├── heal.ogg
177+
│ ├── buff_apply.ogg
178+
│ ├── debuff_apply.ogg
179+
│ └── shield_up.ogg
180+
├── 大招技能/
181+
│ ├── ultimate_start.ogg
182+
│ ├── ultimate_release.ogg
183+
│ ├── sword_strike.ogg
184+
│ └── thousand_swords.ogg
185+
├── UI交互/
186+
│ ├── ui_click.ogg
187+
│ ├── ui_hover.ogg
188+
│ ├── ui_confirm.ogg
189+
│ ├── ui_cancel.ogg
190+
│ └── ui_error.ogg
191+
├── 系统事件/
192+
│ ├── breakthrough_start.ogg
193+
│ ├── breakthrough_success.ogg
194+
│ ├── level_up.ogg
195+
│ ├── gold_gain.ogg
196+
│ ├── relic_obtain.ogg
197+
│ ├── victory.ogg
198+
│ └── defeat.ogg
199+
└── 敌人相关/
200+
├── enemy_spawn.ogg
201+
├── enemy_death.ogg
202+
├── boss_appear.ogg
203+
└── boss_death.ogg
204+
```
205+
206+
---
207+
208+
## 🔄 替换流程
209+
210+
### 1. 下载音效文件
211+
从推荐网站下载对应的音效文件
212+
213+
### 2. 编辑处理
214+
使用 Audacity 等工具进行格式转换和裁剪
215+
216+
### 3. 放置文件
217+
将处理好的文件放入 `assets/audio/sfx/` 对应目录
218+
219+
### 4. 移除占位符
220+
运行脚本移除代码中的占位符:
221+
```bash
222+
./scripts/replace_sfx_placeholders.sh
223+
```
224+
225+
### 5. 验证测试
226+
```bash
227+
# 运行TDD测试
228+
cargo test --test sound_effects_tdd
229+
230+
# 运行游戏测试
231+
cargo run
232+
```
233+
234+
---
235+
236+
## ⚠️ 版权说明
237+
238+
- 免费音效请确认使用许可(CC0、BY、BY-NC等)
239+
- 商用游戏请使用无署名要求或已购买授权的音效
240+
- 建议记录每个音效的来源和许可信息
241+
- 避免使用受版权保护的知名游戏音效
242+
243+
---
244+
245+
## 📊 进度跟踪
246+
247+
| 分类 | 总数 | 已完成 | 待替换 | 完成率 |
248+
|------|------|--------|--------|--------|
249+
| 卡牌相关 | 5 | 0 | 5 | 0% |
250+
| 战斗相关 | 6 | 0 | 6 | 0% |
251+
| 法术技能 | 7 | 0 | 7 | 0% |
252+
| 大招技能 | 4 | 0 | 4 | 0% |
253+
| UI交互 | 5 | 0 | 5 | 0% |
254+
| 系统事件 | 7 | 0 | 7 | 0% |
255+
| 敌人相关 | 4 | 0 | 4 | 0% |
256+
| **总计** | **38** | **0** | **38** | **0% |
102 KB
Binary file not shown.
224 KB
Binary file not shown.

dist/assets/audio/sfx/block.ogg

343 KB
Binary file not shown.

dist/assets/audio/sfx/block.wav

3.13 MB
Binary file not shown.
4.02 MB
Binary file not shown.
1.76 MB
Binary file not shown.
98.8 KB
Binary file not shown.
34.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)