加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx-3.11 使用创建Lua项目以及运行自定义场景

发布时间:2020-12-14 17:08:15 所属栏目:百科 来源:网络整理
导读:第一节 创建项目 现在用cocos2dx3.11版本写一个小游戏,首先创建项目,在终端里输入如下指令: cd/Users/xiaosong1531/Desktop/cocos2d-x-3.11.1/tools/cocos2d-console/bin 进入到bin目录之后,输入创建项目的指令: cocos newCatchFishLua –p com.yuting.

第一节 创建项目

现在用cocos2dx3.11版本写一个小游戏,首先创建项目,在终端里输入如下指令:

cd/Users/xiaosong1531/Desktop/cocos2d-x-3.11.1/tools/cocos2d-console/bin

进入到bin目录之后,输入创建项目的指令:

cocos newCatchFishLua –p com.yuting.CatchFishLua –l lua –d ~/Desktop

然后在桌面上就创建了CatchFishLua这个项目。打开项目的文件在这个文件夹里的:

CatchFishLua/frameworks/runtime-src/proj.ios_mac/CatchFishLua.xcodeproj,双击这个文件,即可打开。

为了前期调试编译方便快捷,我们选择如下进行编译(先不选择ios,ios编译有点慢)

编译之后,运行,效果如下:


这样,一个项目就运行成功了。接下来,看一下项目的组成结构(如下如所示):


之后我们所用的资源全都放在res文件夹下,我们所创建的类基本上都存放在views文件夹下。

关于这个项目是怎样运行的,我大概说一下:从2.x版本转过的同学,一般都是找AppDelegate文件,从lua创建的这个项目中,也有AppDelegate文件,看下面代码:


这样我们找main.lua就好了。



第一行代码的意思是:取消载入luac文件

第二行和第三行是添加资源搜索目录,所以我们可以直接把资源和文件添加到res和src目录下。

第十三行是执行main函数,所以就调用了require(“app.MyApp”):create():run()

在lua中,文件的路径使用”.”,而不使用”/”。在app文件夹下有MyApp.lua文件,这个文件返回MyApp,它是继承mvc文件下的AppBase文件,而AppBase文件只是一个普通的类,在默认的类里,有三个函数:

ctor(构造函数),new函数,create函数。世界上create函数里调用的就是new函数,而new函数里又调用了构造函数。之后,调用run()


在mvc下的ViewBase.lua文件中:


这样就运行了一个场景,而场景的内容就是MainScene.lua文件中设定的。

这是这个默认创建项目的运行流程。当然,在我们实际项目中,可能不按这个流程做,所以接下来,就直接在main函数里运行自定义的场景。

首先,在跟MainScene.lua同一级目录下,创建CLogonLayer.lua文件,并在这个文件中写入如下基本内容:

local size =cc.Director:getInstance():getVisibleSize()

local CLogonLayer =class(“CLogonLayer”,function()

return cc.Scene:create()

end)

localCLogonLayer:create()

local scene = CLogonLayer:new()

scene:addChild(scene:createLayer())

return scene

end

localCLogonLayer:createLayer()

local layer = cc.Layer:create()

local label =cc.Label:createWithSystemFont(“Hello Lua”,“Arial”,32)

label:setPosition(cc.p(size.width/2,size.height/2))

layer:addChild(label)

return layer

end

return CLogonLayer

写到这里,这个最基本的场景就写完了,接下来,在main函数中,我们不采用系统的require(“app.MyApp”):create():run()。

换成我们自定义的场景:

local cLogonLayer =require(“app.views.CLogonLayer”)

local cLogonScene =cLogonLayer.create()

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

然后运行,我们就会看到运行在屏幕上就是我们自定义的场景。


下面我们来修改一下屏幕的大小,也就是分辨率。

在我的项目中,我的分辨率是固定不变的,也就是1280*720

在项目下的config.lua中,将width改为1280,height改为720,autoscale全部改为SHOW_ALL即可。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读