ECS Framework API / BitMask64Utils
Class: BitMask64Utils
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:26
Constructors
Constructor
new BitMask64Utils():
BitMask64Utils
Returns
BitMask64Utils
Properties
ZERO
readonlystaticZERO:Readonly<BitMask64Data>
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:28
零掩码常量,所有位都为0
Methods
create()
staticcreate(bitIndex):BitMask64Data
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:36
根据位索引创建64位掩码
Parameters
bitIndex
number
位索引,范围 [0, 63]
Returns
包含指定位设置为1的掩码
Throws
当位索引超出范围时抛出错误
fromNumber()
staticfromNumber(value):BitMask64Data
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:50
从32位数字创建64位掩码
Parameters
value
number
32位数字值
Returns
低32位为输入值、高32位为0的掩码
hasAny()
statichasAny(mask,bits):boolean
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:60
检查掩码是否包含任意指定的位
Parameters
mask
要检查的掩码
bits
指定的位模式
Returns
boolean
如果掩码包含bits中的任意位则返回true
hasAll()
statichasAll(mask,bits):boolean
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:81
检查掩码是否包含所有指定的位
Parameters
mask
要检查的掩码
bits
指定的位模式
Returns
boolean
如果掩码包含bits中的所有位则返回true
hasNone()
statichasNone(mask,bits):boolean
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:120
检查掩码是否不包含任何指定的位
Parameters
mask
要检查的掩码
bits
指定的位模式
Returns
boolean
如果掩码不包含bits中的任何位则返回true
isZero()
staticisZero(mask):boolean
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:141
检查掩码是否为零
Parameters
mask
要检查的掩码
Returns
boolean
如果掩码所有位都为0则返回true
equals()
staticequals(a,b):boolean
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:157
检查两个掩码是否相等
Parameters
a
第一个掩码
b
第二个掩码
Returns
boolean
如果两个掩码完全相等则返回true
setBit()
staticsetBit(mask,bitIndex):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:187
设置掩码中指定位为1,必要时自动扩展
Parameters
mask
要修改的掩码(原地修改)
bitIndex
number
位索引,不小于零
Returns
void
Throws
当位索引超出范围时抛出错误
getBit()
staticgetBit(mask,bitIndex):boolean
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:205
获取掩码中指定位,如果位超出当前掩码的区段长度,则直接返回0
Parameters
mask
掩码
bitIndex
number
位索引,不小于零
Returns
boolean
clearBit()
staticclearBit(mask,bitIndex):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:223
清除掩码中指定位为0,如果位超出当前掩码的区段长度,则什么也不做
Parameters
mask
要修改的掩码(原地修改)
bitIndex
number
位索引,不小于0
Returns
void
orInPlace()
staticorInPlace(target,other):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:242
对目标掩码执行按位或操作
Parameters
target
目标掩码(原地修改)
other
用于按位或的掩码
Returns
void
andInPlace()
staticandInPlace(target,other):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:274
对目标掩码执行按位与操作
Parameters
target
目标掩码(原地修改)
other
用于按位与的掩码
Returns
void
xorInPlace()
staticxorInPlace(target,other):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:305
对目标掩码执行按位异或操作
Parameters
target
目标掩码(原地修改)
other
用于按位异或的掩码
Returns
void
clear()
staticclear(mask):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:333
清除掩码的所有位为0
Parameters
mask
要清除的掩码(原地修改)
Returns
void
copy()
staticcopy(source,target):void
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:350
将源掩码的值复制到目标掩码,如果source包含扩展段,则target也会至少扩展到source扩展段的长度
Parameters
source
源掩码
target
目标掩码(原地修改)
Returns
void
clone()
staticclone(mask):BitMask64Data
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:382
创建掩码的深拷贝
Parameters
mask
要拷贝的掩码
Returns
新的掩码对象,内容与源掩码相同
toString()
statictoString(mask,radix,printHead):string
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:396
将掩码转换为字符串表示,每个区段之间将使用空格分割。
Parameters
mask
要转换的掩码
radix
进制,支持2(二进制)或16(十六进制),默认为2,其他的值被视为2
2 | 16
printHead
boolean = false
打印头
Returns
string
掩码的字符串表示,二进制不带前缀,十六进制带0x前缀
popCount()
staticpopCount(mask):number
Defined in: packages/core/src/ECS/Utils/BigIntCompatibility.ts:449
计算掩码中设置为1的位数
Parameters
mask
要计算的掩码
Returns
number
掩码中1的位数