按位记录 游戏角色的状态,以及判断当前是否 有XX状态
作者:互联网
刚刚在群里看到有朋友发个图,大意是用一个int数字,记录当前 游戏角色 身上存在的各种状态。
觉得以后会用的上,就特意去做了下理解
enum Status {
流血(1),// 0b0001
中毒(2),// 0b0010
麻痹(4),// 0b0100
眩晕(8);// 0b1000
int code;
Status(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
public static void main(String[] args) {
// 查看是否有 中毒状态 ---- true
System.out.println(getIsStatus(Status.中毒));
}
// 查看当前角色是否有 传入值的状态;
public static boolean getIsStatus(Status status) {
// 先通过方法,获取角色 当前状态,这里直接定义
int chara = 0b1010;// 中毒 + 眩晕状态;
return (status.getCode() & chara) == status.getCode();
}
这种表示方式不仅仅 可以用在角色状态,很多并存的状态,都可以用这种方式来 表示,记录且判断
标签:Status,状态,code,getCode,int,status,XX,按位 来源: https://blog.csdn.net/qq_43081517/article/details/112436601