2个不稳定版本

0.2.1 2022年9月15日
0.2.0 2022年9月15日
0.1.1 2022年9月15日
0.1.0 2022年9月6日

#1250 in 游戏开发

29 每月下载

MIT/Apache

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