源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

75 lines
1.8 KiB

--[[
多状态标记类
使用例子:
MainRightTop界面在几种情况下需要隐藏:1.在战斗场景中,2.在副本中,3.在剧情中,4.在隐藏主界面设置中 ...
那么可以在MainRightTop里定于一个变量 self.visibleState = StateFlag.New()
进入战斗场景self.visibleState:addState(StateFlag.H1)--添加1隐藏状态
离开战斗场景self.visibleState:delState(StateFlag.H1)--移除1隐藏状态
判断界面是否显示self.isInstate()==false--显示界面(false表示没添加有任何隐藏状态)
进入副本self.visibleState:addState(StateFlag.H2)--添加2隐藏状态
离开副本self.visibleState:delState(StateFlag.H2)--移除2隐藏状态
判断界面是否显示self.isInstate()==false--显示界面(false表示没添加有任何隐藏状态)
...
后面的判断类同
]]
StateFlag=StateFlag or BaseClass()
-- StateFlag状态常量
StateFlag.H0=0x0
StateFlag.H1=0x1
StateFlag.H2=0x2
StateFlag.H3=0x4
StateFlag.H4=0x8
StateFlag.H5=0x10
StateFlag.H6=0x20
StateFlag.H7=0x40
StateFlag.H8=0x80
StateFlag.H9=0x100
StateFlag.H10=0x200
StateFlag.H11=0x400
StateFlag.H12=0x800
StateFlag.H13=0x1000
StateFlag.H14=0x2000
StateFlag.H15=0x4000
StateFlag.H16=0x8000
--[[@
功能: 多状态标记变量
]]
function StateFlag:__init()
-- 状态值
self.value=StateFlag.H0
end
-- 设置初始值
function StateFlag:initValue(val)
self.value = val or StateFlag.H0
end
-- 添加状态量
-- 参数state:StateFlag状态常量
function StateFlag:addState(state)
self.value = bit.bor(self.value, state)
end
-- 删除状态量
-- 参数state:StateFlag状态常量
function StateFlag:delState(state)
self.value = bit.band(self.value,bit.bnot(state))
end
-- 是否有状态值
function StateFlag:isInstate()
return self.value>0
end
-- 获取状态值
function StateFlag:isWhat()
return self.value
end