导出lua数据文件,实现了一个向左向右的例子,供初学者交流

cocos编辑场景
cocos code ide编写代码

只在主场景中实现

local MainScene = class(“MainScene”, cc.load(“mvc”).ViewBase)
–作用:建立主场景类
–viewbase为视觉基础原件

MainScene.RESOURCE_FILENAME = “MainScene.csb”
–作用:设置csb文件的位置(一直没用上,应该是到处csb数据文件时用的,这里就用不上了,也没敢删)

local ms
–作用:定义此类的一个变量ms,为了后面载入lua场景文件使用,可以此类中通用。

function MainScene:onCreate()
–作用:定义此类的构造函数

local callBackProvider=function(path,node,funcName)
–作用:定义回调函数,此函数应该在ms赋值前。
–function中三个参数分别为lua文件位置,触发源,触发源回调函数名称

local function localProvider(sender,eventType)
–作用:定义一个返回函数,因为要用到widget的addTouchEventListener的函数,所以需要回调函数callBackProvider返回一个两个参数的函数
–第一个参数为触发源,第二个参数为事件类型

if eventType==2 then
MainScene:nodeFunction(sender)
end
end
–作用:用来分发事件,因为每个对象触摸后都会触发此函数,所以需要根据不同的对象分发不同函数。
–eventType等于2表示当手指抬起。0为按下,1为移动。

return localProvider
–作用:此处返回可以被addTouchEventListener识别的函数。如果不加此句会报错:”参数不对“
end

ms=require(“res/MainScene.lua”).create(callBackProvider)
–作用:将ms赋值为主场景的对象。并且传入了回调函数。
–此句需在回调函数之后

self:addChild(ms’root’])
–作用:将ms的根对象加载进self,self就是此场景类。这样我们运行的时候才能看见我们用cocos拖的对象们。

end

function MainScene:nodeFunction(sender)
–作用:用来分发事件,传入的参数为触发源,因为需要根据触发源的名称来判断应该分发给谁。

local switchTabel={
“ToLeftBtn”]=function() MainScene:changeImgToL() end,
“ToRightBtn”]=function() MainScene:changeImgToR() end,
}
while true do
switchTabel()
break
end
end
–作用:用来代替switch语句,根据按下不同按钮运行相应函数。

function MainScene:changeImgToL(sender)
ms’Image_1’]:moveBy({x=-10,time=0})
end
–作用将 图片向左移动10像素,时间为0秒。moveBy需要的参数中必须有time

function MainScene:changeImgToR(sender)
ms’Image_1’]:moveBy({x=10,time=0})
end
–作用将 图片向右移动10像素,时间为0秒。moveBy需要的参数中必须有time

return MainScene

用了两天才琢磨出来的,基础太薄。仅供跟我一样的新手交流。:7: