|
本文周日写的,但周日太冷了,就没上传,写这个文章时,我一直在思考,最好还是用先读懂lua的
结构,当然我发现自己的水平也没办法由浅入深,lua在我的测试里,目前阶段还是经常是用于调式的。
回归正题
布尔值有两种:true 和 false。在Lua中,只有false和nil才被计算为false,
默认的都是true
*在lua里需要做2个或者2个以内判断的一般都用false,比如是否条件:
- local obj =
- {
- m_isRequestPassStatus = false, --是否服务器申请通关信息
- m_isGetPassStatus = false,
- … …
- }
- 其中一段解释类比 RequestPassStatus
- function BattleManager:SetIsRequestPassStatus(isrequest)
- if "boolean" ~= type(isrequest) then
- CommonHelperFunc.MyAssert(false, "BattleManager:SetIsRequestPassStatus argu error")
- return
- end
- self.m_isRequestPassStatus = isrequest
- end
复制代码 可以理解了吗?结构上和其他语言差不多, 大于2个及以上的其他条件类的比如:进入副本条件限制
等,就不能用这种方式,范例如下:
可以尝试去读以下代码范例片段:
- -- 进入战斗时的条件限制,如下:
- local instance
- EnterFight_OK =0 可以战斗
- EnterFight_PlayerLevelNotEnough = 1 -- 玩家等级不足
- EnterFight_EnergyNotEnough = 2 -- 体力不足
- EnterFight_CostOutRange = 3 -- 组队Cost超出上限
- EnterFight_HaveNoTime = 4 -- 关卡次数限制
- function GetSingleton()
- if instance == nil then
- return BattleManager:New() –如果instance等于nil,则创建对象BattleManager
- end
- return instance
- end
- function BattleManager:New() --如果assert的前面instance ~= nil为非空,则使用instance
- if instance ~= nil then
- CommonHelperFunc.MyAssert( false )
- return instance
- end
- --战斗进入条件
- function BattleManager:EnterFightCheck() --定义之前声明的BattleManager
- local gameMainPlayer = GameMainPlayer.GetSingleton()
- local stageManager = StageManager.GetSingleton()
- local stage = stageManager:GetStage(self.m_curStageID) --副本阶段
- if gameMainPlayer:GetLevel() < stage:GetDef().needlevel then
- return EnterFight_PlayerLevelNotEnough --玩家等级
- end
- if gameMainPlayer:GetEnergy() < stage:GetDef().need_energy * self:GetFightTime() then
- return EnterFight_EnergyNotEnough --体力
- end
- if stage:GetPassTimes() >= stage:GetDef().time then
- return EnterFight_HaveNoTime –关卡次数
- end
- local teamManager = gameMainPlayer:GetTeamData()
- if teamManager:GetTeamCost(teamManager:GetCurSelectedTeamIndex()
- ) > gameMainPlayer:GetCost() then
- return EnterFight_CostOutRange --组队Cost超出上限
- end
- … …
- return EnterFight_OK --就是可以战斗
- end
复制代码 以上一段段屏蔽就可以逐渐检查测试.一段满足条件的战斗的例子.lua语言先需要去读懂他和了解结构才可以用于定位问题去辅助测试。
|
|