# 类 Range 游戏进程类,渲染进程也可以使用 - 实例成员 - [`collection`](#collection) - [`cache`](#cache) - 实例方法 - 构造器[`constructor`](#constructor) - [`scan`](#scan) - [`inRange`](#inrange) - [`clearCache`](#clearcache) - 静态成员 - [`rangeType`](#rangetype) - 静态方法 - [`registerRangeType`](#registerrangetype) ## 部分接口说明 ```ts interface RangeCollection { list: Partial[] range: Range } ``` - `list`: 所有可能被这个范围实例扫描到的内容,是一个对象,可选包含 `x` `y` 两个属性 - `range`: 这个内容集所属的范围实例 ## collection ```ts declare var range: RangeCollection ``` - 成员说明 存储所有可能被这个范围实例扫描到的内容 ## cache ```ts declare var cache: Record ``` - 成员说明 缓存,一般需要你手动操作,内容随意 ## constructor() ```ts interface Range { new(collection: RangeCollection): Range } ``` ## scan() ```ts declare function scan(type: string, data: any): any[] ``` - 参数说明 - `type`: 范围类型,系统自带 `square` 和 `manhattan`,表示方形与曼哈顿范围 - `data`: 传入给扫描函数的数据,例如可以是范围的坐标与大小等 - 方法说明 扫描 collection 中在范围内的物品 - 返回值 所有在范围内的物品构成的数组 ## inRange() ```ts declare function inRange(type: string, data: any, item: Partial): boolean ``` - 方法说明 判断一个物品是否在指定范围中,用法与 [`scan`](#scan) 类似 ## clearCache() ```ts declare function clearCache(): void ``` ## rangeType ```ts declare var rangeType: Record ``` - 静态成员说明 存储了所有注册的范围类型 - 接口 `RangeType` ```ts interface RangeType { scan: RangeScanFn; inRange: InRangeFn; } ``` ## registerRangeType() ```ts declare function registerRangeType( type: string, scan: RangeScanFn>, inRange: InRangeFn> ) ``` - 参考[范围处理](../../guide/battle.md#范围处理)