借鉴bevy实现适用于Godot-rust的状态管理

bevy是rust开发的ECS结构的游戏引擎,详情可搜索bevy。

godot是近年来除了unreal和unity之外全世界最受欢迎的开源游戏引擎,详情可搜索godot。

godot提供了c接口扩展功能,rust可以编译成c的动态链接库,好心人因此为godot开发了rust绑定:godot-rust,我们便可以用rust开发godot。

godot-rust详情可搜索godot-rust。

godot在2D游戏制作中的表现是无出其右的,它的官方语言gdscript是py缩进式语言,写起来比较麻烦,官方默认支持的c#语言也不在我的技术栈中,因此笔者选择rust来制作godot游戏。

bevy还是初级阶段,没有可视化编辑器,撸UI比较麻烦;但是它是一个非常优秀的rust项目,里面有惊艳的rust代码案例。笔者很喜欢bevy中的一些概念,比如状态管理,因此借鉴其使用方法,在godot-rust中实现了一个简易版本。

成品使用起来如下:

实现得比较简易,不能一次注册多个方法,没有方法元组的概念,没有before、after等排序功能,也没有run_if条件功能。

但至少避免了状态的进入、存续、退出等一系列样板代码。

未完待续......

相关推荐
gopher951118 小时前
RUST:序列化与反序列化 serde + derive 详解
开发语言·后端·rust
遇码1 天前
流式调用中途断连别直接报错:瞬态故障识别、退避重试与中文根因诊断的搭建方法
大数据·人工智能·ai·rust·数据分析·大模型·agent
DongQiShanRen1 天前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
alwaysrun2 天前
Web之wasm-pack详解
前端·rust·web·wasm
DongQiShanRen2 天前
六根硬件映射(下):物理闭环五步法,抽一条已实装的看
大数据·jvm·人工智能·算法·rust·哈希算法·集成学习
Zenova EdgeOS2 天前
Rust TUI 实战:用 ratatui 构建工业边缘终端界面
开发语言·后端·rust·工业网关
遇码2 天前
不用转场引擎做幻灯片转场:相机滑动、黑场淡入与真全屏的完整做法
人工智能·数码相机·ai·rust·大模型·agent
lpfasd1232 天前
node-sass 停止维护!老项目迁移 Dart Sass 完整教程
前端·rust·sass
Flynt2 天前
我把真实的 ES 查询怼到 7059 星的 Rust 搜索引擎上:1366/1369 的兼容承诺,裂了 3 个缝
elasticsearch·搜索引擎·rust
小杍随笔2 天前
egui 0.37 升级实录:卡顿修复与5倍性能回退
windows·rust·egui