2个不稳定版本
0.2.1 | 2022年9月15日 |
---|---|
0.2.0 |
|
0.1.1 |
|
0.1.0 | 2022年9月6日 |
#1250 in 游戏开发
29 每月下载
11KB
273 代码行
Bevy状态堆栈
此crate允许您使用一个不局限于单个阶段的状态堆栈。
Bevy版本
bevy版本 | bevy_state_stack版本 |
---|---|
0.8 | 0.1, 0.2 |
使用方法
最好导入整个库。
use bevy_state_stack::*;
将状态枚举添加到应用中。
app.add_state_stack(AppState::Menu)
向应用中添加不同的系统。
app.add_system_on_enter(AppState::Menu, setup_menu)
.add_system_on_exit(AppState::Menu, despawn::<Menu>)
.add_system_on_enter(AppState::Map, setup_map)
.add_system_on_update(AppState::Map, pause)
.add_system_on_update(AppState::Encounter, pause)
.add_system_set_on_update(
AppState::Menu,
SystemSet::new()
.with_system(resume)
.with_system(start_game),
)
通过插入Stack
资源,您可以通过设置、推入或弹出堆栈顶部的状态来管理状态。
fn start_game(mut c: Commands) {
c.insert_resource(Stack::Set(AppState::Map))
}
fn pause(mut c: Commands) {
c.insert_resource(Stack::Push(AppState::Menu))
}
fn resume(mut c: Commands) {
c.insert_resource(Stack::<AppState>::Pop);
}
依赖关系
~7–14MB
~173K SLoC