终极版新手引导
来源:互联网 发布:seo具体怎么做 编辑:程序博客网 时间:2024/04/27 15:20
接触过不少类型的新手引导,最终发现,新手引导嘛,不就是:返回应该引导的区域,然后限制触摸在指定的区域就行了。考虑到屏幕适配等原因,加上使用cocostudio等工具,最终的新手引导应该直接返回引导的节点。这样引导区域之类的就直接确定了。
self:runAction( cc.CallFunc:create( function() GuideManager:openCommonGuide( self ) end ))-- 实现新手引导的两个代码 -- 获取新手引导的视图Idfunction DrawView:getGuideViewId() return GuideViewIds.VIEW_LOTTERYend--按照id获取新手引导的节点function DrawView:getGuideNode( guideId ) if guideId == GuideIds.LOTTERY_VIEW_SILVER then return {node = self.btn_draw_coin, nil, nil} elseif guideId == GuideIds.LOTTERY_CLICK_SILVER then return {node = self.node_draw_coin_down.btn_down_one, nil, nil} elseif guideId == GuideIds.LOTTERY_CONFIRM_SILVER_SHIP then if self.draw_result_view then return {node = self.draw_result_view.shipGetViw.pnl_close, nil, nil} --确认 end elseif guideId == GuideIds.LOTTERY_CONFIRM_SILVER_RESULT then if self.draw_result_view then return {node = self.draw_result_view.btn_ok, nil, nil} --确认 end elseif guideId == GuideIds.LOTTERY_VIEW_GOLD then return {node = self.btn_draw_diamond, nil, nil} elseif guideId == GuideIds.LOTTERY_CLICK_GOLD then return {node = self.drawDiamondOneBtn, nil, nil} elseif guideId == GuideIds.LOTTERY_CONFIRM_GOLD_SHIP then if self.draw_result_view then return {node = self.draw_result_view.shipGetViw.pnl_close, nil, nil}--确认 end elseif guideId == GuideIds.LOTTERY_CONFIRM_GOLD_RESULT then if self.draw_result_view then return {node = self.draw_result_view.btn_ok, nil, nil} --确认 end elseif guideId == GuideIds.LOTTERY_CLICK_BACK then return {node = UIManager:getTopMenuBackButton(), nil, nil} end return {}end-- 新手引导辅助方法结束 function GuideManager:openGuideViewById( view, guideId )local guide = self:getGuideById( guideId )if guide thenself:openGuideView( view, guide )endend-- 获得Guide字典function GuideManager:getGuideById( guideId ) return DictManager.getGuideDict( guideId )endfunction GuideManager:openGuideView( view, guide, delayTime ) if guide then GuideView.getInstance( ):openGuide( view, guide, delayTime )endendfunction GuideView:openGuide( view , guide, delayTime ) self:openTouchLayer( ) self:resetGuideInfo( view, guide, delayTime ) if self.delayTime > 0 then self.waitGuideLayer = true self:runAction( cc.Sequence:create( cc.DelayTime:create( self.delayTime ), cc.CallFunc:create( function() self:openGuideLayer( ) self.waitGuideLayer = nil end ) ) ) elseif self.delayTime < 0 then self:waitForOpenGuide( ) else self:openGuideLayer( ) endendfunction GuideView:openGuideLayer() local guide = self.guide UI.setVisible( self.nodeTouchEffect , false ) UI.setVisible( self.nodeHand , false ) UI.setVisible( self.nodeMessage, false ) UI.setVisible( self.girl , false ) if guide.guid_type == dyt.GuideTypes.Text then self:openTextGuide(guide) elseif guide.guid_type == dyt.GuideTypes.Image then self:openImageGuide(guide) elseif guide.guid_type == dyt.GuideTypes.Point then self:openPointGuide(guide) elseif guide.guid_type == dyt.GuideTypes.Medal then self:openMedalGuide(guide) elseif guide.guid_type == dyt.GuideTypes.GetShip then self:openGetShipGuide(guide) elseif guide.guid_type == dyt.GuideTypes.BattleImg then self:openBattleImgGuide(guide) elseif guide.guid_type == dyt.GuideTypes.ShipSkill then self:openSkillGuide(guide) elseif guide.guid_type == dyt.GuideTypes.ChangePos then self:openChangeFormationGuide(guide) endendfunction GuideView:openChangeFormationGuide(guide) local condition_str_list = LuaUtils.Split2( guide.condition_str , "#" ) local shipIdA = tonumber( condition_str_list[1] ) local shipIdB = tonumber( condition_str_list[2] ) self.btnShipA = self.view.moveShipBtnList[ 2 ] self.btnShipB = self.view.moveShipBtnList[ 1 ] local positionShipA = UI.worldPosition( self.btnShipA ) local positionShipB = UI.worldPosition( self.btnShipB ) local shipBoxA = self.btnShipA:getBoundingBox() local shipBoxB = self.btnShipB:getBoundingBox() local anchorPointA = self.btnShipA:getAnchorPoint() local anchorPointB = self.btnShipB:getAnchorPoint() local worldPosA = UI.worldPosition( self.btnShipA ) local worldPosB = UI.worldPosition( self.btnShipB ) self.shipRectA = cc.rect( worldPosA.x - shipBoxA.width*anchorPointA.x , worldPosA.y - shipBoxA.height*anchorPointA.y , shipBoxA.width , shipBoxA.height ) self.shipRectB = cc.rect( worldPosB.x - shipBoxB.width*anchorPointB.x , worldPosB.y - shipBoxB.height*anchorPointB.y , shipBoxB.width , shipBoxB.height ) self.nodeHand:setPosition( positionShipA ) UI.setVisible( self.nodeHand , true ) local action = cc.RepeatForever:create( cc.Sequence:create( cc.FadeIn:create( 0.2 ), cc.DelayTime:create( 0.5 ), cc.MoveTo:create( 0.7 , positionShipB ), cc.DelayTime:create( 1 ), cc.FadeOut:create( 0.5 ), cc.CallFunc:create( function() self.nodeHand:setPosition( positionShipA ) end ) ) ) self.nodeHand:runAction( action )end
0 0
- 终极版新手引导
- 新手引导
- 新手引导
- 新手引导
- 新手引导
- 游戏新手引导的演进版
- windows+Ubuntu双系统引导修复(终极版)
- 游戏新手引导设计
- app 新手引导功能设计
- cocos2d-x 新手引导
- cocos2d-x 新手引导
- cocos2d-x 新手引导
- COCOS2D-X 新手引导
- cocos2d-x 新手引导
- cocos2d clippindNode,新手引导
- cocos2dx 新手引导
- cocos2d3.5新手引导
- cocos2dx 新手引导层
- UGUI的xlua例子
- 【资源列表】安装软件列表
- 使用运行时机制向Category中添加属性
- 【死磕Java并发】-----Java内存模型之happens-before
- Majority Element
- 终极版新手引导
- db2导出表和表数据
- SBT 构建工具的安装及常用命令
- pat a1019
- iOS8系统H264视频硬件编解码说明
- Android开发集成友盟统计
- Same Tree
- Android ANR 错误LOG查看
- MySQL5.5版本安装失败问题