文件夹介绍
- res:资源目录
- src:lua代码目录 直接用vscode打开src文件夹,直接在这个文件夹下写代码,res文件夹存放图片等资源
cocos2d-lua语法规则
-
访问Cocos2d-x中的类:cc.类名(例如:cc.Director/cc.Scene/cc.Sprite/cc.CSLoader)
-
访问cocos2d中的UI类:ccui.类名(ccui.Button/ccui.Text/ccui.Widget等)
-
访问函数:冒号
- 例如:创建精灵:local sp = cc.Sprite:create("")
- 获取导演类的单例:cc.Director:getInstance()
- sp设置位置: sp:setPosition(cc.p(100,100))
-
访问成员:点
- 例如:访问精灵的x坐标:sp.x
-
坐标:函数: cc.p(x,y)
-
函数:class(类名,父类) -- 执行流程:create(类外) - new - ctor(初始化)
注意:如果没有父类就不写
-
查看API:
- 项目-src-luaide-cocos2d3Api.lua
- cocosAPI
- cocos2d-3.9文档
-
handler(1.对象, 2.函数):类似于c++的
CC_CALLBACK
-- 给按钮添加监听事件 方式一:匿名函数
youkeBtn:addClickEventListener(function ( pSender )
print("点击创建游客按钮")
end)
-- 方式二:handler
youkeBtn:addClickEventListener(handler(self, self.onButtonClick))
function LoginLayer:onButtonClick(pSender)
print("点击创建游客按钮")
end
二段构建
1.首先需要删除src文件下的app和packages文件夹,这两个文件夹是cocos-lua之前的框架 2.创建以下的目录层次
3.创建场景
-- 登录场景
-- "LoginScene"为类名,继承于cc.Scene
-- LoginScene相当于类
local LoginLayer = require "scenes.login.layers.LoginLayer"
local LoginScene = class("LoginScene",cc.Scene)
-- 初始化
function LoginScene:ctor() -- 可以传参:create(参数)
-- 创建登录层
local loginLayer = LoginLayer:create()
-- 将登录层添加到场景上
self:addChild(loginLayer)
end
return LoginScene
4.创建层
-- 登录层
local LoginLayer = class("LoginLayer", cc.Layer)
function LoginLayer:ctor()
-- 创建背景
local bgSp = cc.Sprite:create("res/img_bg.png")
bgSp:setPosition(display.center)
self:addChild(bgSp)
end
return LoginLayer
5.在主函数中运行场景
-- 加载LoginScene文件
local LoginScene = require "scenes.login.LoginScene"
-- 主函数
local function main()
-- 创建场景,运行场景
local scene = LoginScene:create()
-- cc.Director:getInstance():runWithScene(scene)
-- 等同于
display.runScene(scene)
end
修改窗口宽高和分辨率
修改窗口宽高
在main.lua文件前端加上这一句代码
-- 修改窗口大小
cc.Director:getInstance():getOpenGLView():setFrameSize(1280 / 4 * 3, 720 / 4 * 3)
修改分辨率
在config.lua文件中进行修改