lua cocos2dx UIManager

2023-12-26 03:18
文章标签 lua cocos2dx uimanager

本文主要是介绍lua cocos2dx UIManager,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

仅供新手学习的UIManager 


 

local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")
local UIManager=class("UIManager")local instance=nil 
local _root_view = nil
local _layer_map=nil
local _updateLayer_map=nil
local _layer_zorder=nil
function UIManager:ctor()_layer_map={}_updateLayer_map={}_layer_zorder=0
endfunction UIManager:getInstance()if instance==nil theninstance=UIManager.new()endreturn instance
end
--创建一个UILayer
function UIManager:addLayer(layer_tag,ZOrder,layer_class,isupdate)local _layer_data={}_layer_data.layer_tag=layer_tag_layer_data.class= layer_class:new()self:setZOrad(ZOrder)_layer_data.ZOrder=ZOrderif isupdate then_updateLayer_map[layer_tag]=_layer_dataelse_layer_map[layer_tag]=_layer_dataend_layer_data.class:setLocalZOrder(ZOrder)local csb_node=self:readCsbNode(layer_class)if  csb_node thencsb_node:addTo(_layer_data.class)endif _layer_data.class:onCreate() then_layer_data.class:addTo(_root_view)else_layer_data.class:addTo(_root_view)endNewHandMgr:getInstance():addUI(layer_tag,layer_class)endfunction UIManager:readCsbNode(layer_class)if layer_class.FILE_NAME thenlocal path=layer_class.FILE_NAMElocal csb_node=cc.CSLoader:createNode(path)layer_class.resource_node=csb_nodereturn csb_nodeend
end--注册到UILayer上
function UIManager:RegisterGameLayer(root_view)_root_view = root_view
endfunction UIManager:getLayerByTag(layer_tag)if not _layer_map  thenreturnend if _layer_map[layer_tag]~=nil  thenreturn _layer_map[layer_tag].classelseif _updateLayer_map[layer_tag]~=nil thenreturn _updateLayer_map[layer_tag].classelsereturnend
end
--通过layer_tag销毁一个层
function UIManager:destorylayer(layer_tag)if not _layer_map  thenreturnend if _layer_map[layer_tag]~=nil  then_layer_map[layer_tag].class:destory()_layer_map[layer_tag].class:removeFromParent()_layer_map[layer_tag]=nilelseif _updateLayer_map[layer_tag]~=nil then_updateLayer_map[layer_tag].class:destory()_updateLayer_map[layer_tag].class:removeFromParent()_updateLayer_map[layer_tag]=nilelsereturnendend
--设置layer的Zorder
function UIManager:setZOrad(ZOrder)if ZOrder==BaseLayerDef.ZORDER_TAG.NORMAL_ZORDER then_layer_zorder=_layer_zorder+1ZOrder=BaseLayerDef.ZORDER_TAG.NORMAL_ZORDER+_layer_zorderreturn ZOrder	elsereturn ZOrderend
end--更新数据
function UIManager:update(dt)for layer_tag,value in pairs(_updateLayer_map) do_updateLayer_map[layer_tag].class:update(dt)end
endfunction UIManager:onRelease()-- for layer_tag,class in pairs(_layer_map) do-- 	self:destorylayer(layer_tag)-- end-- for layer_tag,class in pairs(_updateLayer_map) do-- 	self:destorylayer(layer_tag)-- end_layer_map={}_updateLayer_map={}
endreturn UIManager





这篇关于lua cocos2dx UIManager的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/537916

相关文章

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

由Lua 粘合的Nginx生态环境

转自:http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html -- agentzh tech-club.org 演讲听录 免责聲明 Lua 粘合的 Nginx 生态环境 2.1. openresty 2.2. 配置小语言 2.3. ngx_drizzle 2.4.

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

Docker+FastDFS+Lua搭建文件服务器进阶版

使用FastDFS+Nginx+Lua+GraphicsMagick搭建类似淘宝的图片服务器 1、FastDFS安装1.1、镜像下载1.2、开启tracker容器1.3、开启storage容器1.4、测试 2、FastDFS集成Nginx+lua+GraphicsMagick2.1、依赖包下载2.2、安装软件基础包2.3、依赖安装2.4、配置Lua脚本实现图片缩略图2.5、修改nginx.c

【Unity-Lua】音乐播放器循环滚动播放音乐名

前言:Unity中UI节点 图1 如上所示,一开始本来是打算用ScrollView做的,觉得直接计算对应的文本位置就行,所以没用ScrollRect来做,可以忽略Scroll,Viewport这些名字。如下图:需要在一个背景Image组件上添加上Mask组件来显示固定位置的文本显示。 图2 图3 并且需要在要显示的文本上挂载Content Size Filter组件,但是这儿会有个坑

lua data time

local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbreviated weekday name (e.g., Wed) %A full weekday name (e.g., Wednesday) %b abbreviated month name (e.g., Sep) %B full month name (e.g., Sep

arm linux lua移植

lua: lua home 1.下载lua源码 lua下载 lua-5.3.4.tar.gz 2.解压: tar xvf lua-5.3.4.tar.gz 3.修改makefile and luaconf.h $修改 lua-5.3.4/Makefile #INSTALL_TOP= /usr/local INSTALL_TOP= $(shell pwd)/out #修改安装目录(当前目录/o

如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?

在当今的互联网世界中,网络请求是数据交换的基础。无论是在开发Web应用程序、自动化测试还是进行数据抓取,掌握如何发送网络请求是一项基本技能。Lua,作为一种轻量级、高性能的脚本语言,经常被用于这些场景。本文将详细介绍如何使用Lua脚本进行更复杂的网络请求,特别是POST请求。 Lua脚本在网络请求中的优势 Lua脚本因其简单性和灵活性,非常适合用于编写网络请求。以下是使用Lua进行网络请求

Cocos2dx 3.0 过渡篇(五) 随机数的获取

1、简单的随机数用法:CCRANDOM_0_1 示例如下: [cpp] int HelloWorld::getRand(int start,int end)  {   float i = CCRANDOM_0_1()*(end-start+1)+start;  //产生一个从start到end间的随机数   return (int)i;  }   2、上述的方法虽然简便,但是运行

Cocos2dx 3.0 过渡篇(三) 触摸机制

尊重原创,转载请注明来自:star特530的CSDN博客 http://blog.csdn.net/start530/article/details/18325493 本来在中午休息时间打算大展拳脚,好好写一篇新触摸机制相关的博文,结果,等真正下手的时候才发现无从下手,很多地方自己都说不清,赶紧看了下testCpp,才发现原来是这样,还可以这样,哦?这样都行?哎,我还是太年轻了。   咱也只能