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
用了两天才琢磨出来的,基础太薄。仅供跟我一样的新手交流。