借鉴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条件功能。

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

未完待续......

相关推荐
Thneonl9 小时前
一个人从 Rust 内核做到 React 前端:我做了一个云原生 SRE 巡检图谱桌面工具
rust
程序员爱钓鱼10 小时前
Rust Struct结构体详解:定义自己的复杂数据类型
后端·面试·rust
苏灿烤鱼11 小时前
公司**不可计算,就自己做操作系统
rust·typescript·agent
_ZHOURUI_H_13 小时前
Unity TCP底层极限拆解:粘包、半包、CRC、序列号、双缓冲到底怎么一起工作的?
网络·网络协议·tcp/ip·游戏·unity·游戏引擎·游戏开发
nnerddboy14 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
咸甜适中14 小时前
rust语言AI编程学习笔记(五)clap命令行参数解析
学习·rust·ai编程
梦醒沉醉15 小时前
19、Rust程序设计语言——高级特性
rust
SomeB1oody17 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程
qq_1702647517 小时前
unity里GameObject和Texture的内存归属
java·unity·游戏引擎
DLYSB_18 小时前
Kafka 消费倾斜死锁与 Partition 掉队:我用 Rust 写了个“数据管道物理哨兵”,比 Grafana 报警快了 18 秒
rust·kafka·grafana·报警灯