其他
Rust 生态蜜蜂|「Bevy 源码阅读」Part 5: ECS 架构初探之UI与渲染
前言
因觉学,求绝学。Rust 生态蜜蜂,是觉学社公众号开启的一个付费专栏。生态蜜蜂,顾名思义,是从 Rust 生态的中,汲取养分,供我们成长。计划从2022年7月第二周开始,到2022年12月最后一周结束。预计至少二十篇周刊,外加一篇Rust年度报告总结抢读版。本专栏可以在公众号菜单「生态蜜蜂」中直接进入。海外用户可以去 https://rustbee.zhubai.love/ 订阅。
在上一篇文章里,我们学习了 Bevy 的 插件(Plugin)系统,今天我们来学习一下 UI 和 渲染相关的知识,然后把整个打字游戏的源码进行全面解读。
友情提示:本文较长,适合慢慢阅读。
“我们参考Bevy Jam [1] 游戏开发第一次比赛中的一个打字游戏[2],来学习 Bevy ECS 的应用实践,从而为后面阅读 ECS 库源码打基础。源码在 GitHub 开源[3],已经升级到 Bevy 0.8。这款游戏模仿的是 《Flappy Bird》(飞扬的小鸟)这款游戏,但是控制小鸟上下飞是通过打字完成的。
本文目录
通用背景 硬件绘图基础 游戏引擎基本架构 渲染引擎工作原理 Bevy UI 与 渲染引擎源码架构介绍 Bevy 游戏引擎架构概要 Bevy UI 概要 Bevy 渲染引擎概要 打字游戏源码全解 main 主流程 Cylinder 障碍物渲染 Ground 物理渲染 打字与事件 UI 界面 碰撞检测 小结 延伸阅读
通用背景
“如果你对此背景知识有一定了解可以跳过。我们这部分内容的目的只是对渲染流程建立宏观模型,以便帮助我们理解 Bevy 相关代码,涉及更多细节可以自行查阅相关资料。
涉及Bevy UI 和 渲染之前,我们需要了解一些通用背景知识,包括硬件绘图的基本原理、游戏引擎的基本架构、渲染引擎的基本流程等知识。因为 Bevy 并不是要造空中楼阁,它依然是基于这些基础知识所构建的游戏引擎。