cocos2dx-3.4 lua新手引导

cocos2dx-3.4 lua新手引导,第1张

概述考虑到游戏中都有运用到新手引导,我把我所想的新手引导的功能,写成一个类,新手引导主要是由某些特定的条件触发,比如说,游戏中的等级,任务ID,或者是有某种需求时,需要做出来指引玩家进行 *** 作 主要考虑一下问题: 1、新手引导中断的时候,怎么处理 2、新手引导点击之后不相应,怎么处理 3、一个任务有多步 *** 作,要怎么设计,点击时候,是否判断这个步骤已经完成了,每步 *** 作都有填表控制。。 4、服务只记录任务I

考虑到游戏中都有运用到新手引导,我把我所想的新手引导的功能,写成一个类,新手引导主要是由某些特定的条件触发,比如说,游戏中的等级,任务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 --这是响应的nodeClipLayer.menu_node_s   = nil --这是响应的nodeClipLayer.visibleSize = nil --屏幕大小sizeClipLayer.origin      = nil --原点ClipLayer.nodef       = nil --模板function ClipLayer:create()    local layer = ClipLayer.new()    layer:ctor()    layer:addChild(layer:createClip(),1)        return layerendfunction ClipLayer:ctor()    self.visibleSize = cc.Director:getInstance():getVisibleSize()    self.origin = cc.Director:getInstance():getVisibleOrigin()endfunction 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 clipend--从外界传入一个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)endreturn ClipLayer
总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1052088.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存