这里记录一下在游戏开发中,系统设计及业务逻辑处理中可以用到的枚举的一些小技巧。
(一)枚举集合的判断处理
集合判断通常用于子集的判断,判断某个大类是否包含某个类型
假设当前我们有一个物品类型的枚举
public enum EItemType
{
// 1001——1004 资源
Food = 1001,
Wood = 1002,
Iron = 1003,
Oil = 1004,
// 1006——1010 碎片
Cap_Debris = 1006,
Cloth_Debris = 1007,
Pant_Debris = 1008,
Shoe_Debris = 1009,
Weppon_Debris = 1010,
// 1011——1013 技能书
Skill_Book_A = 1011,
Skill_Book_B = 1012,
Skill_Book_C = 1013,
// 以上都是物品类型
SINGLE,
// 以下都是物品集合
RESURCE, // 资源
DEBRIS, // 碎片
SKILL_BOOK, // 技能书
// MAX为标记位
MAX,
}
从这个枚举中的注释可以看出 “资源”={“木”,"粮","铁","油","铜"},“碎片"={“衣服碎片”,"武器碎片","裤子碎片","帽子碎片","鞋碎片"} 还有技能书
对于集合的处理可以使用两种方式,一是数组,二是通过按位与或运算,通过数组的方式就不说了,这里记录一下按位与或运算的方式。
集合判断工具类
public static class ItemTypeUtil
{
private static readonly long[] Types = new long[(int)EItemType.MAX];
public sta

本文介绍了在游戏开发中,如何利用C#的枚举和按位与或运算进行集合判断,特别是针对枚举子集的处理。枚举集合的判断通常用于确定某个类型是否包含在大类之中。通过位移运算,可以将枚举值转换为二进制并进行集合判断。当枚举数量超过64个时,可以使用高位和低位集合的long数组来解决。示例代码展示了如何判断某个枚举值是否属于特定集合。
最低0.47元/天 解锁文章
626

被折叠的 条评论
为什么被折叠?



