Web Analytics

ark

⭐ 222 stars Simplified Chinese by mlange-42

Ark Logo

测试状态 codecov Go 报告卡 用户指南 Go 参考 GitHub DOI:10.5281/zenodo.14994239 MIT 许可证 Apache 2.0 许可证 在 Awesome Go 中被提及

Ark 是一个基于原型的 实体组件系统(ECS),适用于 Go

——

特性   •   安装   •   用法   •   工具

特性

安装

要在 Go 项目中使用 Ark,请运行:

go get github.com/mlange-42/ark

使用方法

下面是每个 ECS 文档中展示的经典位置/速度示例。

详情请参阅用户指南API 文档示例

package main

import ( "math/rand/v2" "github.com/mlange-42/ark/ecs" )

// Position component type Position struct { X, Y float64 }

// Velocity component type Velocity struct { DX, DY float64 }

func main() { // Create a new World world := ecs.NewWorld()

// Create a component mapper // Save mappers permanently and re-use them for best performance mapper := ecs.NewMap2Position, Velocity

// Create entities with components for range 1000 { _ = mapper.NewEntity( &Position{X: rand.Float64() 100, Y: rand.Float64() 100}, &Velocity{DX: rand.NormFloat64(), DY: rand.NormFloat64()}, ) }

// Create a filter // Save filters permanently and re-use them for best performance filter := ecs.NewFilter2Position, Velocity

// Time loop for range 5000 { // Get a fresh query and iterate it query := filter.Query() for query.Next() { // Component access through the Query pos, vel := query.Get() // Update component fields pos.X += vel.DX pos.Y += vel.DY } } }

工具

引用方式

Lange, M. & contributors (2025):Ark – 基于原型的 Go 语言实体组件系统。DOI:10.5281/zenodo.14994239,GitHub 仓库:https://github.com/mlange-42/ark

许可证

Ark 及其所有源代码和文档均根据 MIT 许可证Apache 2.0 许可证 进行分发,供您选择。

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-03 ---