关于分类比特面具,有一些东西一直困扰着我,我现在需要对它们有更多的了解.我理解他们在根本层面上是如何工作的.假设我正在制作一个地下城爬虫的基本破解和砍杀能力.我可能会使用如下类别的集合:
enum PhysicsCategory{
static let none: UInt32 = 0
static let playerCategory: UInt32 = 0b1
static let enemyCategory: UInt32 = 0b10
static let weaponCategory: UInt32 = 0b100
static let collectibleCategory: UInt32 = 0b1000
static let enemyProjectileCategory: UInt32 = 0b10000
}
这可能就足够了,我可以测试我是在攻击敌人,还是他们在攻击我,等等.也就是说,如果我想做一个有不同敌人等级、不同武器类型、不同敌人弱点和优势的地下城爬虫,我感觉我很快就会用完类别:
enum PhysicsCategory{
static let none: UInt32 = 0
static let playerCategory: UInt32 = 0b1
static let toxicWeaponCategory: UInt32 = 0b10
static let iceWeaponCategory: UInt32 = 0b100
static let explosiveWeaponCategory: UInt32 = 0b1000
static let bluntWeaponCategory: UInt32 = 0b10000
static let toxicEnemyCategory: UInt32 = 0b100000
static let iceEnemyCategory: UInt32 = 0b1000000
static let explosiveEnemyCategory: UInt32 = 0b10000000
}
我没有敌人的 Select ,甚至还没有接触到Collection 品、环境物品或老板的弱点和/或优势构成了全新的组合.这些事情通常是如何解释的?我试图提出的要求比你上面看到的更多,我读过的书/指南只在非常基本的层面上解释了这一点.