Add Switch game framework target
This commit is contained in:
@@ -237,6 +237,64 @@ Frostbite2D Switch smoke test
|
||||
Press PLUS to exit.
|
||||
```
|
||||
|
||||
### 2.4 编译 Switch 游戏框架 NRO
|
||||
|
||||
当前游戏框架已经接入 Switch 构建目标:
|
||||
|
||||
```text
|
||||
Frostbite2DGameSwitch
|
||||
```
|
||||
|
||||
该目标使用:
|
||||
|
||||
```text
|
||||
game\src\switch_game_main.cpp
|
||||
```
|
||||
|
||||
作为 Switch 专用入口,运行同一套 `WhiteboxScene`、`StageRenderer`、
|
||||
`DebugOverlay`、`PlayerActor` 和 `LevelDefinition` 游戏框架。
|
||||
|
||||
构建命令:
|
||||
|
||||
```powershell
|
||||
$env:PATH='C:\devkitPro\devkitA64\bin;C:\devkitPro\tools\bin;C:\devkitPro\msys2\usr\bin;C:\Program Files\CMake\bin;C:\Program Files\xmake;' + $env:PATH
|
||||
$env:DEVKITPRO='C:\devkitPro'
|
||||
$env:DEVKITA64='C:\devkitPro\devkitA64'
|
||||
|
||||
& 'C:\Program Files\xmake\xmake.exe' f -c -p switch -a aarch64 -m release --toolchain=cross --sdk='C:\devkitPro\devkitA64' --bin='C:\devkitPro\devkitA64\bin' --cross='aarch64-none-elf-' -y
|
||||
& 'C:\Program Files\xmake\xmake.exe' -b Frostbite2DGameSwitch
|
||||
```
|
||||
|
||||
产物:
|
||||
|
||||
```text
|
||||
build\switch\aarch64\release\Frostbite2DGame.elf
|
||||
build\switch\aarch64\release\switch_game\NSUnknownGame.nro
|
||||
build\switch\aarch64\release\switch_game\control.nacp
|
||||
build\switch\aarch64\release\switch_game\assets\
|
||||
```
|
||||
|
||||
`xmake.lua` 会在构建后自动:
|
||||
|
||||
- 复制 `game\assets` 到 `build\switch\aarch64\release\switch_game\assets`
|
||||
- 生成 `control.nacp`
|
||||
- 调用 `elf2nro` 生成带元数据的 `NSUnknownGame.nro`
|
||||
|
||||
Switch 运行时资源目录当前由引擎解析为:
|
||||
|
||||
```text
|
||||
/switch/Frostbite2D/NS Unknown Game/assets
|
||||
```
|
||||
|
||||
在真机 SD 卡或模拟器文件系统中测试完整游戏时,需要确保资源也放到该目录。
|
||||
构建输出目录中的 `switch_game\assets` 是用于部署的资源副本。
|
||||
|
||||
当前已验证:
|
||||
|
||||
- `Frostbite2DGameSwitch` 可成功编译为 ELF/NRO
|
||||
- PC 和 Switch 共用同一套 GLES 300 es shader
|
||||
- Windows 游戏目标仍可正常编译和启动
|
||||
|
||||
## 3. 常见问题
|
||||
|
||||
### 3.1 切换平台后编译异常
|
||||
@@ -267,3 +325,21 @@ Frostbite2D_smoke_meta.nro
|
||||
|
||||
不要优先使用裸的 `Frostbite2D_smoke.nro`。
|
||||
|
||||
### 3.4 Switch 游戏 NRO 启动后资源加载失败
|
||||
|
||||
确认资源目录存在:
|
||||
|
||||
```text
|
||||
/switch/Frostbite2D/NS Unknown Game/assets
|
||||
```
|
||||
|
||||
至少应包含:
|
||||
|
||||
```text
|
||||
assets\shaders\shaders.json
|
||||
assets\shaders\sprite.vert
|
||||
assets\shaders\sprite.frag
|
||||
assets\shaders\colored_quad.vert
|
||||
assets\shaders\colored_quad.frag
|
||||
assets\character\male\*.png
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user