Cocos2dX 动作结束回调应用

本文详细探讨了在Cocos2dX 3.3版本中,如何使用Lua进行动作编程,并特别关注了动作结束时的回调机制。通过实例,解释了如何在游戏对象执行完特定动作后触发相应的回调函数,从而实现更精细的游戏逻辑控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本3.3 项目类型Lua

-- 活动NPC面板点击事件处理
function Home_NPCPanelClick(sender, eventType)
    if eventType == ccui.TouchEventType.ended then
        AudioManager:playButtonEffect()
        local cnt = table.getn(Home.tabNPCActivityBtn)
        Home.PanelNpc:setTouchEnabled(false)
        if Home.superStar then
            for i = 1, cnt do
                for i = 1, cnt do
                    Home.tabNPCActivityBtn[i]:setTouchEnabled(false)
                end
                local actionFadout = cc.FadeOut:create(0.5)
                local moveTo = cc.MoveTo:create(0.5, cc.p(175, 175))
                local function actionCallFunc(sender)
                    if i == cnt then
                        Home.PanelNpc:setTouchEnabled(true)
                    end
                end
                
                Home.tabNPCActivityBtn[i]:runAction(cc.Sequence:create(moveTo, actionFadout, cc.CallFunc:create(actionCallFunc)))
                Home.tabNPCActivityBtn[i]:runAction(actionFadout)
            end
            Home.superStar = not(Home.superStar)
        else
            Home.PanelNpc:setTouchEnabled(false)
            for i = 1, cnt do
                local actionFadeIn = cc.FadeIn:create(0.5)
                local moveTo = cc.MoveTo:create(0.5, Home.tabNPCBtnActivityBtnPos[i])

                local function actionCallFunc(sender)
                    sender:setTouchEnabled(true)
                    if i == cnt then
                        Home.PanelNpc:setTouchEnabled(true)
                    end
                end

                Home.tabNPCActivityBtn[i]:runAction(cc.Sequence:create(moveTo, actionFadeIn, cc.CallFunc:create(actionCallFunc))           
            end
            Home.superStar = not(Home.superStar)
        end
        
    end
end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值