1、获得屏幕尺寸的大小
size = cc.Director:getInstance():getWinSize()
2、创建一个lua场景(GameScene)
1、第一步 声明GameScene场景类
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
2、第二步 创建场景(静态创建函数)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
End
3、构造函数的实现(初始化数据)
function GameScene:ctor()
End
4、创建层
function GameScene:createLayer()
cclog("GameScene init")
local layer = cc.Layer:create()
local bg = cc.Sprite:create("HelloWorld.png")
bg:setPosition(cc.p(size.width/2, size.height/2))
layer:addChild(bg)
return layer
End
5、返回场景
最后一句记得写return GameScene
3、如何获取场景对象
local scene = require("GameScene")
local gameScene = scene.create()
4、main函数框架部分
require "Cocos2d"
--local function cclog(...)的变种(打印日志信息)
cclog = function(...)
print(string.format(...))
end
--引用通知,全局变量 跟踪绑定执行函数发生错误的信息并输出
function __G__TRACKBACK__(msg)
cclog("----------------------------------------")
cclog("LUA ERROR: " .. tostring(msg) .. "\n")
cclog(debug.traceback())
cclog("----------------------------------------")
return msg
end
local function main()
--collectgarbage (opt [, arg])
--[[功能:是垃圾收集器的通用接口,用于操作垃圾收集器
参数:
opt:操作方法标志
"Stop": 停止垃圾收集器
"Restart": 重启垃圾收集器
"Collect": 执行一次全垃圾收集循环
"Count": 返回当前Lua中使用的内存量(以KB为单位)
"Step": 单步执行一个垃圾收集.步长 "Size"由参数arg指定(大型的值需要多步才能完成),如果要准确指定步长,需要多次实验以达最优效果。如果步长完成一次收集循环,将返回True
"Setpause": 设置 arg/100的值作为暂定收集的时长
"Setstepmul": 设置 arg/100的值,作为步长的增幅(即新步长=旧步长*arg/100)]]
collectgarbage("collect")
--避免內存泄漏,设置内存回收参数
collectgarbage("setpause", 100)
collectgarbage("setstepmul", 5000)
--添加资源、运行场景,类似Cocos2dx的AppDelegate
--create scene
local scene = require("GameScene")
local gameScene = scene.create()
end
- 返回一个布尔值指示成功执行的函数以及调用失败的错误信息.另外运行函数或者错误的返回值
local status, msg = xpcall(main, __G__TRACKBACK__)
if not status then
error(msg)
end
5、添加资源路径,比如
cc.FileUtils:getInstance():addSearchPath("src")
6、设置设计解决方案
cc.Director:getInstance():getOpenGLView():setDesignResolutionSize(960, 640, 0)
7、设置坐标或者锚点都是用cc.p,例如
label:setPosition(cc.p(size.width/2,size.height - label:getContentSize().height))
label:setAnchorPoint(cc.p(1.0, 1.0))
8、场景、层、精灵的创建
cc.Scene:create()
cc.Layer:create()
cc.Sprite:create("HelloWorld.png")