1000行代码写小游戏(三)

更新玩家的血量、攻击、防御等属性数值和展示:

-- 更新血量
function MineSecretDialog:updateUserHp(addHp, addMaxHp, isInit)
    addHp = addHp or 0
    addMaxHp = addMaxHp or 0
    isInit = isInit or false

    local updateHp = false
    if addMaxHp > 0 then
        userData.maxHp = userData.maxHp + addMaxHp
        updateHp = true
    end
    if addHp ~= 0 then
        userData.curHp = math.min(userData.maxHp, math.max(0, userData.curHp + addHp))
        updateHp = true
    end

    if updateHp or isInit then
        self.m_hpBar:setScaleX(countBarScaleX(userData.curHp/userData.maxHp, userData.maxHp/BarMaxNum.HP))
        AddLabel( userData.curHp.."/"..userData.maxHp, ccp(posX + 5, posY - gap), self.m_bgKuang, Tag.HpNumLabel, ColorList[2], ccp(0, 0.5) )
    end
end
-- 更新体力
function MineSecretDialog:updateUserActive(addActive, addMaxActive, isInit)
    addActive = addActive or 0
    addMaxActive = addMaxActive or 0
    isInit = isInit or false

    local updateActive = false
    if addMaxActive > 0 then
        userData.maxActive = userData.maxActive + addMaxActive
        updateActive = true
    end
    if addActive ~= 0 then
        userData.curActive = math.min(userData.maxActive, math.max(0, userData.curActive + addActive))
        updateActive = true
    end

    if updateActive or isInit then
        self.m_activeBar:setScaleX(countBarScaleX(userData.curActive/userData.maxActive, userData.maxActive/BarMaxNum.ACTIVE))
        AddLabel( userData.curActive.."/"..userData.maxActive, ccp(posX + 5, posY - gap * 2), self.m_bgKuang, Tag.ActiveNumLabel, ColorList[3], ccp(0, 0.5) )
    end
end
-- 更新恢复,攻击,防御
function MineSecretDialog:addUserRecoverAtkDef(addRecover, addAtk, addDef, isInit)
    addRecover = addRecover or 0
    addAtk = addAtk or 0
    addDef = addDef or 0
    isInit = isInit or false

    if addRecover > 0 or isInit then
        userData.recover = userData.recover + addRecover
        self.m_recoverBar:setScaleX(countBarScaleX(userData.recover/BarMaxNum.RECOVER))
        AddLabel( userData.recover, ccp(posX2 + 5, posY), self.m_bgKuang, Tag.RecoverNumLabel, ColorList[4], ccp(0, 0.5) )
    end

    if addAtk > 0 or isInit then
        userData.atk = userData.atk + addAtk
        self.m_atkBar:setScaleX(countBarScaleX(userData.atk/BarMaxNum.ATK))
        AddLabel( userData.atk, ccp(posX2 + 5, posY - gap), self.m_bgKuang, Tag.AtkNumLabel, ColorList[5], ccp(0, 0.5) )
    end

    if addDef > 0 or isInit then
        userData.def = userData.def + addDef
        self.m_defBar:setScaleX(countBarScaleX(userData.def/BarMaxNum.DEF))
        AddLabel( userData.def, ccp(posX2 + 5, posY - gap * 2), self.m_bgKuang, Tag.DefNumLabel, ColorList[6], ccp(0, 0.5) )
    end
end


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值