一:cocos2d lua开发的优点
实现游戏资源的动态更新,而不用从新下载安装包。很多网游选择Lua开发。
Lua的语法:
注释不是//而是--
二:通过cocos code ide(根据eclipse改编的)创建Lua的方法
1新建cocos new -p com.lol.game -l lua -d ~/Desktop/ testLua
2通过cocos code ide来编写Lua 启动
3配置环境 点击右上角cocos code ide->Prefences->Cocos->Lua->Lua Framework指向cocos源码目录
4File->New Cocos Project (屏幕大小 横竖屏幕 项目名称 add native codes是否添加runtime源码-不选择)->下一步完成
5自动生成res src-(main.lua GameScene.lua)点击右键runas 运行
三:设计一个简单的lua 设计一个场景
1删除GameScene.lua 新建一个myScene.lua
--定义场景类 local表示为局部变量
local MyScene=class("myScene",function()
return cc.Scene:create()
end)
--create函数
function MyScene:create()
local scene=MyScene.new()
--初始化之后 在添加下面一句
scene:addChild(scene:init())
return scene
end
--构造
function MyScene:ctor()
self.winsize=cc.Director:getInstance():getWinSize()
end
--初始化
function MyScene:init()
local layer=cc.Layer:create()
local sp=cc.Sprite:create("farm.jpg")
layer:addChild(sp)
sp:setPosition(self.winsize.width/2,self.winsize.height/2)
--当创建完后 为了显示随时改变 可以看到变化 添加一句 直接点击保存就行
sp:runAction(cc.RotateBy:create(5,720))
--添加返回
local itemback=cc.MenuItemFont:create("返回吧")
local menu=cc.Menu:create()
menu:addChild(itemback)
layer:addChild(menu)
--添加返回的侦听
local function menucallback(obj)
local gs=require("MenuScene")
local menugs=gs:create()
cc.Director:getInstance():replaceScene(cc.TransitionFade:create(1,menugs))
end
--注册
itemback:registerScriptTapHandler(menucallback)
return layer
end
--然后在main.lua 1更改create scene 一下入口
--2把scene.create()改为scene:create()
--3并删除背景音乐
return MyScene
四:实现从一个场景跳转到另一个场景
再新建一个menuScene 来实现和myScene相互跳转
--创建菜单场景
local MenuScene=class("MenuScene",function ()
return cc.Scene:create()
end)
--创建create函数
function MenuScene:create()
local scene=MenuScene.new()
--在写完初始化函数后 在添加下面一句
scene:addChild(scene:init())
return scene
end
--创建构造
function MenuScene:ctor()
self.winsize=cc.Director:getInstance():getWinSize()
end
--初始化
function MenuScene:init()
local layer=cc.Layer:create()
local menuitem=cc.MenuItemFont:create("开始游戏了")
--以下实现场景的跳转方法--
local function menucallback(obj)
local sc=require("myScene")
local gs=sc:create()
cc.Director:getInstance():replaceScene(gs)
end
--通过注册侦听 来实现按下跳转
menuitem:registerScriptTapHandler(menucallback)
--以上就是实现了场景的跳转方法--
local menu=cc.Menu:create()
menu:addChild(menuitem)
layer:addChild(menu)
return layer
end
return MenuScene
--最后 还是通过修改main里面的
五:把在ide写好的代码,然后放进xcode进行编译打包
把main.lua menuScene.lua 复制到xcode创建的src文件夹中替换 来打包