mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 18:52:08 +08:00
- 将所有小写的命名空间导入更正为首字母大写格式 - 统一 GFramework 框架的命名空间引用规范 - 修复 core、ecs、godot 等模块的命名空间导入错误 - 标准化文档示例代码中的 using 语句格式 - 确保所有文档中的命名空间引用保持一致性 - 更新 global using 语句以匹配正确的命名空间格式
38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
using Arch.Core;
|
||
using GFramework.Ecs.Arch.Components;
|
||
|
||
namespace GFramework.Ecs.Arch.Systems;
|
||
|
||
/// <summary>
|
||
/// 移动系统 - 继承 ArchSystemAdapter
|
||
/// 负责更新具有位置和速度组件的实体的位置
|
||
/// </summary>
|
||
public sealed class MovementSystem : ArchSystemAdapter<float>
|
||
{
|
||
private QueryDescription _query;
|
||
|
||
/// <summary>
|
||
/// Arch 系统初始化
|
||
/// </summary>
|
||
protected override void OnArchInitialize()
|
||
{
|
||
// 创建查询:查找所有同时拥有Position和Velocity组件的实体
|
||
_query = new QueryDescription()
|
||
.WithAll<Position, Velocity>();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 系统更新方法,每帧调用一次
|
||
/// </summary>
|
||
/// <param name="deltaTime">帧间隔时间</param>
|
||
protected override void OnUpdate(in float deltaTime)
|
||
{
|
||
// 查询并更新所有符合条件的实体
|
||
var f = deltaTime;
|
||
World.Query(in _query, (ref Position pos, ref Velocity vel) =>
|
||
{
|
||
pos.X += vel.X * f;
|
||
pos.Y += vel.Y * f;
|
||
});
|
||
}
|
||
} |