Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2dx-3.4 lua新手引导大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

虑到游戏中都有运用到新手引导,我把我所想的新手引导的功能,写成一个类,新手引导主要是由某些特定的条件触发,比如说,游戏中的等级,任务ID,或者是有某种需求时,需要做出来指引玩家进行操作

主要虑一下问题:

1、新手引导中断的时候,怎么处理

2、新手引导点击之后不相应,怎么处理

3、一个任务有多步操作,要怎么设计,点击时候,是否判断这个步骤已经完成了,每步操作都有填表控制。。

4、服务只记录任务ID,不记录操作步骤

5、首先他的入口肯定是一个Scene,然后根据local layer = Scene:getChildByName(Name),这个name就是策划填表传进来的参数

6、有些响应条件需要额外处理,所以要虑到额外处理的功能。。



--这是一个新手引导的类
local ClipLayer = class("ClipLayer",function()
	return cc.Layer:create()
end)

ClipLayer.__index = ClipLayer --用于访问

-------------------------------------------------------------
ClipLayer.menu_node   = nil --这是响应的node
ClipLayer.menu_node_s   = nil --这是响应的node
ClipLayer.visibleSize = nil --屏幕大小size
ClipLayer.origin      = nil --原点
ClipLayer.nodef       = nil --模板

function ClipLayer:create()
    local layer = ClipLayer.new()
    layer:ctor()
    layer:addChild(layer:createClip(),1)
    
    return layer
end

function ClipLayer:ctor()
    self.visibleSize = cc.Director:geTinstance():getVisibleSize()
    self.origin = cc.Director:geTinstance():getVisibLeorigin()
end



function ClipLayer:createClip()
	local clip = cc.ClippingNode:create()--创建裁剪节点  
    clip:seTinverted(true)--设置底板可见  
    clip:setAlphaThreshold(0.0)--设置透明度Alpha值为0  

    local layerColor = cc.LayerColor:create(cc.c4b(0,150)) 
    
    clip:addChild(layerColor,8)--在裁剪节点添加一个灰色的透明层  

    --创建模板,也就是你要在裁剪节点上挖出来的那个”洞“是什么形状的,这里我用close的图标来作为模板  
    self.nodef = cc.Node:create()--创建模版    
    local close = cc.Sprite:create("close.jpg")--这里使用的是close的那个图标   
    self.nodef:addChild(closE)--在模版上添加精灵    
    self.nodef:setPosition(cc.p(self.visibleSize.width /4,self.visibleSize.height /2)) --设置的坐标正好是在close button的坐标位置上  
    clip:setStencil(self.nodef)--设置模版   
    
    return clip
end


--从外界传入一个menu,和一个number
--注意,外面的mneu不要用api里面的一行排列或者是一列排列,
--否则menu会破坏,导致下面的代码运行不了
function ClipLayer:createMenu(menu_node,number)
    
    if self.menu_node then
        self.menu_node_s = self.menu_node:getChildByTag(number)
    end
    
        function clipfunc(tg,sender)
            cclog("输出clipping----点击")
            if self.menu_node_s then
                
                local dd = self.menu_node_s:isRunning()  --不论是隐藏还是显示,都在运行中
                print("判断这个节点是否在运行     " .. toString(dd))
                self.menu_node_s:activate()
            
            else

            end
        end
    
    
    self.blackItem = cc.MenuItemImage:create()   
    self.blackItem:setPosition(cc.p(self.visibleSize.width/2,self.visibleSize.height/2));  
    self.blackItem:setContentSize(self.visibleSizE)--设置大小为整个屏幕的大小
    
    self.closeItemm = cc.MenuItemImage:create("CloseNormal.png","CloseSELEcted.png")
    self.closeItemm:registerScriptTapHandler(clipfunC)
    self.closeItemm:setPosition(self.menu_node_s:getPosition())
    self.nodef:setPosition(self.menu_node_s:getPosition())


    self.blackMenu = cc.Menu:create()  
    self.blackMenu:setPosition(cc.p(0,0));  
    self.blackMenu:setAnchorPoint(0,0);  
    self.blackMenu:addChild(self.blackItem)
    self.blackMenu:addChild(self.closeItemm)

    self:addChild(self.blackMenu,2)
end





return ClipLayer

大佬总结

以上是大佬教程为你收集整理的cocos2dx-3.4 lua新手引导全部内容,希望文章能够帮你解决cocos2dx-3.4 lua新手引导所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。