query
函数是 Yuka
的 CellSpacePartitioning
类的方法之一。它是根据输入的查询区域(rect
)和类型(queryType
)返回一个数组,包含符合条件的 Entity
对象。
query(rect, queryType);
rect
:查询区域,是一个矩形区域,由 Vector2
类型表示。
queryType
:查询类型,是一个字符串。可选值包括:
"all"
:返回所有实体对象。
"range"
:返回与指定区域发生重叠的实体对象。
Entity
对象。const partitioning = new CellSpacePartitioning(100, 100, 10, 10);
let entities = [];
// 将实体添加到空间划分中
for (let i = 0; i < 10; i++) {
const position = new Vector2( Math.floor( Math.random() * 100 ), Math.floor( Math.random() * 100 ) );
const entity = new Entity( position );
partitioning.add( entity );
entities.push( entity );
}
// 查询范围
const rect = new Vector2( 50, 50 );
// 全部查询
const queriedAll = partitioning.query( rect, "all" );
console.log( queriedAll );
// 查询重叠区域
const queriedRange = partitioning.query( rect, "range" );
console.log( queriedRange );
partitioning.updateEntity
方法来更新在空间划分中的位置。CellSpacePartitioning
类是 Yuka
的 SpatialPartitioning
类的子类,而 query
方法是 SpatialPartitioning
的抽象方法之一。因此,在 CellSpacePartitioning
中重写了 query
方法,以适应该空间划分算法。