Pub Version

Fast ECS

用 Dart 编写的简单快速的实体组件系统 (ECS) 库。

CPU 火焰图

  • 设备 Nexus 5 (2014) Android 6.0.1
  • fast_ecs 版本 0.0.0
  • 总时间 10500(ms)
  • 1024 个实体

all
RotationSystem

void update(double deltaTime, SetEntity entities) {
    for (var i = 0; i < entities.size; i++) {
      Entity entity = entities[i];
      TransformComponent transform = transformComponents[entity] as TransformComponent;
      VelocityComponent rotation = velocityComponents[entity] as VelocityComponent;
      transform.rotation += rotation.velocity * deltaTime;
      transform.dirty = true;
    }
  }

update RotationSystem

SpriteSystem

void updateSprite(TransformComponent transform, SpriteComponent sprite) {
    var textureRegion = sprite.textureRegion;
    if (transform.dirty && textureRegion != null) {
      var scos = cos(transform.rotation) * transform.scale;
      var ssin = sin(transform.rotation) * transform.scale;
      var tx = -scos * textureRegion.anchorX + ssin * textureRegion.anchorY;
      var ty = -ssin * textureRegion.anchorX - scos * textureRegion.anchorY;
      sprite.transformData.set(scos, ssin, tx, ty);
      transform.dirty = false;
    }
  }

updateSprite

创建历史

灵感来源是资源 A SIMPLE ENTITY COMPONENT SYSTEM (ECS) [C++]

GitHub

https://github.com/QiXi/fast_ecs