cocos2d-lua学习笔记---2.基础知识

676 阅读2分钟

文件夹介绍

  • 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文件中进行修改