Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BSN UI — Bevy 0.19 游戏主界面

使用 Bevy 0.19 的 BSN (Bevy Scene Notation) 声明式构建的游戏主界面示例。

功能

  • 主菜单:标题 + "进入游戏" / "配置" / "退出" 三个按钮
  • 状态切换:点击按钮在 主菜单 ↔ 游戏中 ↔ 配置 三个页面间流转
  • 退出按钮关闭窗口

运行

cargo run

项目结构

bsn_ui/
├── assets/fonts/
│   └── ark-pixel-12px-proportional-zh_cn.ttf   # 中方像素字体
├── src/
│   └── main.rs                                  # 主逻辑:状态定义 + 三个页面 + 按钮组件
├── BEVY_UI_GUIDE.md                             # Bevy 0.19 UI 使用指南
├── Cargo.toml
└── README.md

技术栈

技术 说明
Bevy 0.19 游戏引擎
BSN (bsn!) 声明式场景构建
Bevy States OnEnter + DespawnOnExit 页面生命周期
ark-pixel-font 12px 简体中文像素字体

页面流转

主菜单 ──进入游戏──→ 游戏中
  │                    │
  ├──配置──→ 配置      │
  │          │         │
  ↓          ↓         ↓
退出      返回主菜单 ←──┘

关键代码模式

// 状态定义
#[derive(States)]
enum GameScreen { MainMenu, Playing, Settings }

// BSN 声明页面
fn settings_screen() -> impl SceneList {
    bsn_list![settings_root()]
}

// 状态进入时 spawn,退出时自动 despawn
app.add_systems(OnEnter(GameScreen::Settings), settings_screen.spawn());

更多细节见 BEVY_UI_GUIDE.md。

About

bevy bsn ui example

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages