You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
local XXOOScene = {}
XXOOScene.newScene = function ()
local scene = cc.Scene:create()
-- do other XXOO things
return scene
end
return XXOOScene
关于Scene界面跳转,在util中封装一个通用函数用于界面跳转。
function util.toScene(scene)
-- 增加一个统一的界面跳转动画
scene = cc.TransitionSlideInR:create(0.5, scene)
if cc.Director:getInstance():getRunningScene() then
cc.Director:getInstance():replaceScene(scene)
else
cc.Director:getInstance():runWithScene(scene)
end
end
main.lua用户进入HelloScene界面
HelloScene = require("src/HelloScene")
local function main()
cc.FileUtils:getInstance():addSearchResolutionsOrder("src")
cc.FileUtils:getInstance():addSearchResolutionsOrder("res")
HelloScene.newScene()
end
local status, msg = xpcall(main, __G__TRACKBACK__)
if not status then
error(msg)
end
解决方案:在 C++ 中创建启动画面,HelloScene.lua中不做创建Scene的操作,直接getRunningScene。
AppDelegate::applicationDidFinishLaunching () {
// ... other xxoo things
auto scene = Scene::create();
auto s = Director::getInstance()->getWinSize();
auto layer = LayerColor::create(Color4B(255, 255, 255, 255), s.width, s.height);
auto logo = Sprite::create("res/logo.png");
layer->addChild(logo);
logo->setPosition(Vec2(s.width*0.5,s.height*0.7));
scene->addChild(layer,0);
director->runWithScene(scene);
// 特殊处理,延迟加载lua(创建好logoScene再加载)
auto action = CallFunc::create(startLua);
layer->runAction(action);
return true;
}
小游戏的组成
欢迎界面
开始菜单界面
主游戏界面
游戏结束界面
排行榜界面 (可选)
cocos2d-x v3.1 lua 框架的使用
lua代码结构
每个XXOOScene.lua 文件的样子如下:
关于Scene界面跳转,在util中封装一个通用函数用于界面跳转。
main.lua用户进入HelloScene界面
游戏启动logo的Scene特殊处理
cocos2d-x v3.1 引擎的精简
cocos/scripting/lua-bindings/auto/ 下的文件生成
The text was updated successfully, but these errors were encountered: