#utils #ecs #macro

specs_declaration

一个简单的宏,用于有效地创建SPECS系统

2个不稳定版本

0.3.0 2020年7月21日
0.1.0 2020年6月19日

#1873 in 游戏开发

GPL-3.0-only

15KB
72

支持开源开发者!♥️

Become a patron

SPECS声明

一个简单的宏,用于有效地创建SPECS系统。

添加到您的项目

将以下内容添加到您的Cargo.toml文件中

specs_declaration = "*"

用法

  • system!
  • 给出系统的名称和可选的泛型参数
  • 以闭包的形式给出您常用的SystemData的内容
  • 编写您的操作,就像您在System的常规run(&self, params..)函数中一样
use specs::*;

system!(SystemName, |velocity: WriteStorage<'a, Velocity>| {
    for vel in (&velocity,).join() {
        println!("velocity: {}, {}, {}", vel.x, vel.y, vel.z);
    }
});

泛型

use specs::*;

system!(SystemName<T: Debug + Send + Sync + 'static>, |my_resource: Read<'a, T>, velocity: WriteStorage<'a, Velocity>| {
    println!("My Generic Resource: {:?}", my_resource);

    for vel in (&velocity,).join() {
        println!("velocity: {}, {}, {}", vel.x, vel.y, vel.z);
    }
});

如果您觉得这个有用,请考虑在我的patreon上捐款!

无运行时依赖