quick-cocos2d-x 学习系列之五 ccsloader学习
这个ccsloader 用例主要是实现将cocosdudio中导出的文件加入到游戏当中。想到后续能使用这么精彩的画面心里还是有点小激动的。让我们一起好好学习下这个神奇SAMPLE吧。
代码路径还是老地方:\quick\samples\ccsloader
1.DEMO总体逻辑
程序从main.lua中调用
require("app.MyApp").new():run()
跳入到MyApp.lua中。该类定义如下:
local MyApp = class("MyApp",cc.mvc.AppBase)
继承与一个封装类。
场景共13个如下图定义在MyApp.lua文件中。
self.scenes_ = {
"MenuScene",
"CCSSample1Scene",
"CCSSample2Scene",
"CCSSample3Scene",
"CCSSample4Scene",
"CCSSample5Scene",
"CCSSample6Scene",
"CCSReader1Scene",
"CCSReader2Scene",
"CCSReader3Scene",
"CCSReader4Scene",
"CCSReader5Scene",
"CCSReader6Scene"
}
场景具体实现在scenes文件夹中。
通过self:enterNextScene()函数直接进入到场景。
1.1enterNextScene
该函数进行下一个场景,最终通过调用self:enterScene函数进入场景。
2."MenuScene"
开始的第一个场景,该场景主要是让大家进行选择。
有一个标题,通过app:createTitle(self,"SelectLoader") 实现。
有两个按钮一个Use CCSLoader,一个Use CCSReader
区别在于Use CCSReader按钮按下后,会进行如下变量的设置:
app.currentSceneName_ = "CCSSample6Scene"
此外函数会有参数true,如:app:enterNextScene(true)
而Use CCSLoader直接调用app:enterNextScene()
注意:关于app,可以查看\quick\framework\cc\mvc\AppBase.lua中代码。
3."CCSSample1Scene"
关键语句
app:loadCCSJsonFile(self,"DemoHead_UI.ExportJson")
4."CCSSample2Scene"
关键语句
app:loadCCSJsonFile(self,"DemoLogin.ExportJson")
5."CCSSample3Scene"
关键语句
app:loadCCSJsonFile(self,"DemoMap.ExportJson")
6."CCSSample4Scene"
关键语句
app:loadCCSJsonFile(self,"DemoShop.ExportJson")
7."CCSSample5Scene"
关键语句
app:loadCCSJsonFile(self,"publish/FightScene.json")
8."CCSSample6Scene"
关键语句
app:loadCCSJsonFile(self,"publish/RPGGame.json")
9."CCSReader1Scene"
通过如下命令加载
cc.uiloader:load("BattleScene.csb"):addTo(self)
10."CCSReader2Scene"
关键语句
local widget = ccs.GUIReader:getInstance():widgetFromJsonFile("DemoLogin/DemoLogin.ExportJson"):addTo(self)
11."CCSReader3Scene"
关键语句
local widget = ccs.GUIReader:getInstance():widgetFromJsonFile("DemoMap/DemoMap.ExportJson"):addTo(self)
local scrollView = widget:getChildByName("DragPanel")
scrollView:setDirection(ccui.ScrollViewDir.both)
scrollView:addEventListener(function(sender,eventType)
print("CCSSample2Scenescroll")
end)
12."CCSReader4Scene"
关键语句
ccs.GUIReader:getInstance():widgetFromJsonFile("DemoShop/DemoShop.ExportJson"):addTo(self)
13."CCSReader5Scene"
关键语句
ccs.SceneReader:getInstance():createNodeWithSceneFile("publish/FightScene.json"):addTo(self)
14."CCSReader6Scene"
关键语句
ccs.SceneReader:getInstance():createNodeWithSceneFile("publish/RPGGame.json"):addTo(self)