1个稳定版本
1.0.0 | 2021年4月11日 |
---|
#1888 in 游戏开发
在 game_engine_core 中使用
9KB
104 代码行
游戏状态机
阅读文档。
功能
State
trait易于实现。- 泛型基于堆栈的状态机,满足您的所有需求。
- 状态更新函数。
- 状态暂停和恢复。
使用方法
将以下内容添加到您的 Cargo.toml 文件中
game_state_machine = "*"
使用方法
use game_state_machine::*;
type StateData = (isize, isize);
pub struct Test;
impl State<StateData> for Test {
fn on_start(&mut self, data: &mut StateData) {
data.0 += data.1;
}
fn on_resume(&mut self, data: &mut StateData) {
self.on_start(data);
}
fn update(&mut self, _data: &mut StateData) -> StateTransition<StateData> {
StateTransition::Push(Box::new(Test))
}
}
fn main() {
let mut sm = StateMachine::<StateData>::default();
let mut state_data = (0, 10);
sm.push(Box::new(Test), &mut state_data);
assert!(state_data.0 == 10);
sm.update(&mut state_data);
assert!(state_data.0 == 20);
sm.stop(&mut state_data);
assert!(state_data.0 == 20);
assert!(!sm.is_running())
}
维护者信息
- 维护者:Jojolepro
- 联系方式:jojolepro [at] jojolepro [dot] com
- 网站:jojolepro.com
- Patreon:patreon