Mac下cocos2dx3.1用Cocos IDE写的Lua binding篇01

来源:互联网 发布:c界面编程怎么写 编辑:程序博客网 时间:2024/04/30 05:54


本人Lua新手,写着玩玩。微笑


新建一个模版工程。


一、修改main.lua


require "Cocos2d"

require "Cocos2dConstants"


-- 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("----------------------------------------")

    return msg

end


local function main()

    collectgarbage("collect")

    -- avoid memory leak

    collectgarbage("setpause", 100)

    collectgarbage("setstepmul", 5000)

    cc.Director:getInstance():getOpenGLView():setDesignResolutionSize(480,320, 0)

    cc.FileUtils:getInstance():addSearchPath("src");

    cc.FileUtils:getInstance():addSearchPath("res");


    --support debug

    local targetPlatform = cc.Application:getInstance():getTargetPlatform()

    if (cc.PLATFORM_OS_IPHONE == targetPlatform) or (cc.PLATFORM_OS_IPAD ==targetPlatform) or

        (cc.PLATFORM_OS_ANDROID == targetPlatform)or (cc.PLATFORM_OS_WINDOWS == targetPlatform) or

        (cc.PLATFORM_OS_MAC == targetPlatform)then

        cclog("result is ")

        --require('debugger')()


    end


    -- run

    local sceneGame = cc.Scene:create()

    sceneGame:addChild(require("scripts.StartScene"))


    if cc.Director:getInstance():getRunningScene()then

        cc.Director:getInstance():replaceScene(sceneGame)

    else

        cc.Director:getInstance():runWithScene(sceneGame)

    end


end



local status,msg = xpcall(main, __G__TRACKBACK__)

if not statusthen

    error(msg)

end



二、新建一个文件夹scripts,其中新建一个StartScene.lua文件


local sceneStart =nil


visibleSize = cc.Director:getInstance():getVisibleSize()


-- create text

local function createText()


    local alert = ccui.Text:create()

    alert:setString("Hello World")

    alert:setFontName("Marker Felt")

    alert:setFontSize(30)

    alert:setColor(cc.c3b(255,255, 0))

    alert:setPosition(cc.p(visibleSize.width /2.0, visibleSize.height / 2.0 ))


    return alert


end


-- create farm

local functioncreateLayerFarm()

    local layerFarm = cc.Layer:create()


    -- add text

    localspriteText = createText()

    layerFarm:addChild(spriteText)


    returnlayerFarm

end



if sceneStart ==nil then


    sceneStart = cc.Scene:create()


    sceneStart:addChild(createLayerFarm())

end


return sceneStart





0 0
原创粉丝点击