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

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

未完待续......

相关推荐
Sator1几秒前
使用Unity ASE插件设置数值不会生效的问题
unity·游戏引擎
AA陈超20 分钟前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-08 点击移动
c++·游戏·ue5·游戏引擎·虚幻
星释27 分钟前
Rust 练习册 :Proverb与字符串处理
开发语言·后端·rust
Source.Liu28 分钟前
【ISO8601库】Serde 集成模块详解(serde.rs文件)
rust·time·iso8601
程序猿追2 小时前
轻量级云原生体验:在OpenEuler 25.09上快速部署单节点K3s
人工智能·科技·机器学习·unity·游戏引擎
B0URNE2 小时前
【Unity基础详解】(7)Unity核心:动画系统
unity·游戏引擎
星释2 小时前
Rust 练习册 :Pig Latin与语言游戏
游戏·rust·c#
2301_795167202 小时前
玩转Rust高级应用 如何让让运算符支持自定义类型,通过运算符重载的方式是针对自定义类型吗?
开发语言·后端·算法·安全·rust
我的golang之路果然有问题3 小时前
mac M系列芯片 unity 安装会遇到的错误以及解决
经验分享·学习·macos·unity·游戏引擎
ftpeak5 小时前
《Rust+Slint:跨平台GUI应用》第八章 窗体
开发语言·ui·rust·slint