当前最新cocosdx的版本是3.1.5,新建的项目是mvc架构,而cocos官方提供的代码示例却不是mvc架构,感觉有点鸡肋,不好学习。所有我们直接把他修改成代码示例的样子,不用提供的mvc架构。
步骤1,修改AppDelegate.cpp中的applicationDidFinishLaunching函数,在85行
if (engine->executeScriptFile("main.lua"))
{
return false;
}
修改为
engine->executeString("require 'main.lua'");
步骤2,修改整个main.lua文件,原来的全删掉,把下面代码复制进去
-- CC_USE_DEPRECATED_API = true
require "cocos.init"
-- cclog
cclog = function(...)
print(string.format(...))
end
-- for CCLuaEngine traceback
function __G__TRACKBACK__(msg)
cclog("----------------------------------------")
cclog("LUA ERROR: " .. tostring(msg) .. "\n")
cclog(debug.traceback())
cclog("----------------------------------------")
end
local function initGLView()
local director = cc.Director:getInstance()
local glView = director:getOpenGLView()
if nil == glView then
glView = cc.GLViewImpl:create("Lua Empty Test")
director:setOpenGLView(glView)
end
director:setOpenGLView(glView)
glView:setDesignResolutionSize(480, 768, cc.ResolutionPolicy.NO_BORDER)
--turn on display FPS
director:setDisplayStats(true)
--set FPS. the default value is 1.0/60 if you don't call this
director:setAnimationInterval(1.0 / 60)
end
local function main()
-- avoid memory leak
collectgarbage("setpause", 100)
collectgarbage("setstepmul", 5000)
initGLView()
local visibleSize = cc.Director:getInstance():getVisibleSize()
local origin = cc.Director:getInstance():getVisibleOrigin()
-- create farm
local function createLayerFarm()
local layerFarm = cc.Layer:create()
-- add in farm background
local bg = cc.Sprite:create("HelloWorld.png")
bg:setPosition(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2)
layerFarm:addChild(bg)
return layerFarm
end
-- run
local sceneGame = cc.Scene:create()
sceneGame:addChild(createLayerFarm())
cc.Director:getInstance():runWithScene(sceneGame)
end
xpcall(main, __G__TRACKBACK__)