简单了解下Cocos2d-lua,它的前世我记不清了,今生我还是了解,Cocos 的官网:http://www.cocos.com/,我第一次知道Cocos的时候是在2014年8月,当时cocos2d-x 3.0已经出来了,2 到3引擎修改了很多(具体的可以到官网看看)。在工作时经常有2版本的,现在很少用2版本开发了,如果有,多半工作是维护优化(改修改别的代码是比较恶心的,我也是拒绝的),添加新功能(还好),现在大部分都用3.0以上的。cocos2d可以3种语言来开发,分别有Cocos2d-x(c++)、Cocos2d-lua(lua)、Cocos2d-js (js)。
一、简单了解
- Cocos2d-x:开发语言C++,运行快,开发慢,不能热更新,适合单机游戏,休闲游戏。
- Cocos2d-lua:开发语言Lua(脚本语言),开发快,可以热更新,适合网络游戏,现在大部分游戏都会选择Cocos2d-lua开发。
- Cocos2d-js:开发语言Js(脚本语言),开发快,可以热更新,支持浏览器,适合网页游戏。
注:1.热更新:不需要重新下载安装包,直接下载修改后的文件,具体的优势和添加热更新功能会单独来讲解。
2.Cocos2d-js和Cocos2d-lua都是基于Cocos2d-x开发的,所以首先得了解Cocos2d-x的引擎框架。
二、认识Cocos2d-lua项目目录
- frameworks:框架,cocos2d-x引擎框架库和各个平台工程。
- obj,runtime,simulator:vs运行后所产生的文件夹(runtime:运行时的文件;simulator:模拟器运行的文件)。
- res:资源目录,包含图片,音乐,音效,字体等。
- src:lua代码目录,包含封装Cocos2d-x的lua库,自己开发的lua文件。
- config.json:游戏配置文件。
- lua.config,lua.luaproj:创建lua项目时产生的文件
三、程序入口
- AppDelegate.cpp里会调用main.lua,所以,main.lua就是lua的程序入口。
if (engine->executeScriptFile("src/main.lua")) //main.lua,就是lua的程序入口 { return false; }
- main.lua
cc.FileUtils:getInstance():setPopupNotify(false) --添加搜索路径 cc.FileUtils:getInstance():addSearchPath("src/") cc.FileUtils:getInstance():addSearchPath("res/") --导入lua文件 require "config" require "cocos.init" local function main() require("app.MyApp"):create():run() --create,创建主场景,run,运行主场景, MainScene主场景, end --调用main函数 local status, msg = xpcall(main, __G__TRACKBACK__) if not status then print(msg) end
- MyApp.lua
--创建了MyApp类,继承了AppBase(packages/mvc/AppBase.lua) local MyApp = class("MyApp", cc.load("mvc").AppBase) function MyApp:onCreate() math.randomseed(os.time()) --随机数种子 end return MyApp
- MainScene.lua
--MainScene类,继承ViewBase local MainScene = class("MainScene", cc.load("mvc").ViewBase) function MainScene:onCreate() -- 添加背景 display.newSprite("HelloWorld.png") :move(display.center) :addTo(self) -- 添加文本 cc.Label:createWithSystemFont("Hello World", "Arial", 40) :move(display.cx, display.cy + 200) :addTo(self) end return MainScene
下面我们就在MainScene类的onCreate函数中添加CocosStudio导出的UI界面,对于CocosStudio制作UI界面可以看CocosStudio分类下的教程,写得不好,大家多给建议,共勉。