Cocos2d-x Lua Node与Node层级架构,cocos2d-xlua
Cocos2d-x Lua采用层级(树形)结构管理场景、层、精灵、菜单、文本、地图和粒子系统等节点(Node)对象。一个场景包含了多个层,一个层又包含多个精灵、菜单、文本、地图和粒子系统等对象。层级结构中的节点可以是场景、层、精灵、菜单、文本、地图和粒子系统等任何对象。节点的层级结构如下图所示。
require "Cocos2dConstants"
size = cc.Director:getInstance():getWinSize()
local label①
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
end
function GameScene:ctor()
end
-- create layer
function GameScene:createLayer()
cclog("GameScene init")
local layer = cc.Layer:create()
label = cc.LabelTTF:create("Hello World", "Arial", 46)
label:setPosition(cc.p(size.width/2,
size.height - label:getContentSize().height))
label:setTag(123)
label:setAnchorPoint(cc.p(1.0, 1.0))
layer:addChild(label)
local bg = cc.Sprite:create("HelloWorld.png")
bg:setPosition(cc.p(size.width/2, size.height/2))
layer:addChild(bg)
local function update(delta)②
local x,y = label:getPosition()
label:setPosition(cc.p(x + 2, y - 2))
end
--开始游戏调度
layer:scheduleUpdateWithPriorityLua(update, 0)③
function onNodeEvent(tag)④
if tag == "exit" then⑤
--开始游戏调度
layer:unscheduleUpdate()⑥
end
end
layer:registerScriptHandler(onNodeEvent)⑦
return layer
end
return GameScene
上述代码第①行定义了模块级标签对象label。代码第②行定义的update(delta)函数是调度函数。第③行代码layer:scheduleUpdateWithPriorityLua(update, 0)是开启游戏调度,按照帧率进行调度,优先级0是默认值。第④行代码是层处理事件回调函数,其中第⑤行代码是判断是否为退出层事件,如果是退出层事件则调用第⑥行代码停止调度。第⑦行代码layer:registerScriptHandler(onNodeEvent)是注册层事件监听器。
更多内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发》本书交流讨论网站:http://www.cocoagame.net欢迎加入Cocos2d-x技术讨论群:257760386更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com智捷课堂现推出Cocos会员,敬请关注:http://v.51work6.com/courseInfoRedirect.do?action=netDetialInfo&courseId=844465 categoryId=0《Cocos2d-x实战 JS卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11659698.html
欢迎关注智捷iOS课堂微信公共平台,了解最新技术文章、图书、教程信息
http://www.bkjia.com/Androidjc/996457.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/996457.htmlTechArticleCocos2d-x Lua Node与Node层级架构,cocos2d-xlua Cocos2d-x Lua采用层级(树形)结构管理场景、层、精灵、菜单、文本、地图和粒子系统等节点(Nod...