适用于 Swift 的实体组件系统框架

Swash:Swift 的 ECS 框架

Swash 是一个实体系统组件框架。名称“Swash”是“Swift”和“Ash”的混成词。Swash 正在进行中。

ECS 警告...... 这里有龙!

如果您之前从未尝试使用 ECS 实现任何东西,那么您可能会感到惊讶。这是一种解决问题的不同范例。在面向对象编程的世界中,您考虑的是对象,而使用 ECS 时,您有时会觉得很疯狂,有时会抓狂,因为您被迫以外星人的方式解决问题。如果您主要有过程式编程经验,那它可能就像您第一次进行面向对象编程一样。

流程概述

在 Swash 中,您将创建实体。Entity 是组件的集合。Component 就像对象一样。这两者都不做决策,由系统通过节点对组件执行操作。节点保存对组件的引用。您将定义每个描述系统所操作的实体的组件的Node。将对象添加到Engine 时,引擎会根据其组件了解可从实体创建哪些节点。

范例

Swashteroids

历史

Ash 是 Swash 所衍生的 ActionScript 3 (AS3) 框架。由 Richard Lord 创建,以促进在(现已不复存在的)Flash 平台上进行游戏开发。

AS3 的类型远比 Swift 弱,将 Ash 移植到 Swash 是一个技术难题。我至少有一个错误的开始。该框架的某些方面必须更改(例如如何创建节点)。我认为我的任何更改都不会带来过度负担。至少我认为,如果您签出代码,您可能会看到 Swift 做了一些有趣的事情。

开发人员

感谢

许可证

  • 此项目在 MIT 许可证下获得许可 - 有关详细信息,请参阅 LICENSE.md 文件

GitHub

点击跳转