从上一篇搭建好了cocos2d-lua环境,迫不及待的尝试一下,下面是学习的时候的代码
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
function MainScene:onCreate()
-- add background image
display.newSprite("HelloWorld.png")
:move(display.center)
:addTo(self)
-- add HelloWorld label
cc.Label:createWithSystemFont("Hello World", "Arial", 40)
:move(display.cx, display.cy + 200)
:addTo(self)
print("全部");
--添加精灵
display.newSprite("ze.png")
:move(display.center)
:addTo(self)
--添加函数
local function sort(a,b)
if a>b then return a else return b end;
end
--函数使用
local variable1 ,variable2 = 1,2;
local pyf = sort(variable1,variable2);
print("pyf=%d",pyf);
--表,对象的使用
local biao = {name = "pyf",age = 24,score = 90};
print("name = "..biao.name,biao.age,biao.score);
--创建精灵的方式,以及对精灵设置各种属性
local p = cc.Sprite:create("ze.png")
p:setPosition(cc.p(500,500));
p:setAnchorPoint(cc.p(0,0));
p:setColor(cc.c3b(255,255,0));
self:addChild(p);
--动作(注意:by才有reverse,to是没有的)
local act1 = cc.JumpTo:create(5,cc.p(0,0),100,100);
-- p:runAction(cc.RepeatForever:create(act1));
local m1 = cc.MoveBy:create(2,cc.p(500,500));
local m2 = m1:reverse();
p:runAction(cc.Sequence:create(m1,m2));
--动画
local sprite_ani = cc.Sprite:create();
sprite_ani:setAnchorPoint(cc.p(0,0))
sprite_ani:setPosition(cc.p(0,0));
self:addChild(sprite_ani);
local animation = cc.Animation:create();
for i = 1 ,7 do
local name = i..".png";
animation:addSpriteFrameWithFile(name);
end
animation:setDelayPerUnit(2.8/14.0);
animation:setRestoreOriginalFrame(true);
animation:setLoops(1);
local ani = cc.Animate:create(animation);
sprite_ani:runAction(ani);
--label
local label = cc.Label:create();
label:setString("000");
label:setPosition(cc.p(100,100));
self:addChild(label);
--tocher
--local node1 = cc.Node:create()
--self:addChild(node)
--print("node is ok")
--node1:setTouchEnabled(true)
--正常的触摸监听事件
local function onTouchBegan(touch, event)
print("0000000")
return true
end
local function onTouchMoved(touch, event)
print("11111111111")
end
local function onTouchEnded(touch, event)
print("2222222222222")
end
local listener1 = cc.EventListenerTouchOneByOne:create()--单点触摸
listener1:setSwallowTouches(true)
listener1:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
listener1:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED )
listener1:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
-- local eventDispatcher = self:getEventDispatcher()
-- eventDispatcher:addEventListenerWithSceneGraphPriority(listener1, self)
self:getEventDispatcher():addEventListenerWithSceneGraphPriority(listener1,self)--给层添加监听
--cocostdio UI编辑器
local m_widget = ccs.GUIReader:getInstance():widgetFromJsonFile("Common_RoomEX.json")
m_widget:setPosition(cc.p(-100,-100))
self:addChild(m_widget)
--按钮回调函数
local function ButtonCallBack(sender, eventType)
if eventType == ccui.TouchEventType.ended then
local n = sender:getTag();
if n == 594 then --594按钮
print(n.."button is touch!");
end
end
end
--按钮
local button1 = m_widget:getChildByName("Button_quZhouMahjong");
button1:setColor(cc.c3b(255,255,0));
button1:addTouchEventListener(ButtonCallBack)
--checkBox回调函数
local function checkCallBack(sender,eveneType)
print("checkBox is touch!");
end
--checkBox
local checkbox = m_widget:getChildByName("CheckBox_AAFanKa0");
checkbox:setVisible(true)
checkbox:addTouchEventListener(checkCallBack);
end
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
function MainScene:onCreate()
-- add background image
display.newSprite("HelloWorld.png")
:move(display.center)
:addTo(self)
-- add HelloWorld label
cc.Label:createWithSystemFont("Hello World", "Arial", 40)
:move(display.cx, display.cy + 200)
:addTo(self)
print("全部");
--添加精灵
display.newSprite("ze.png")
:move(display.center)
:addTo(self)
--添加函数
local function sort(a,b)
if a>b then return a else return b end;
end
--函数使用
local variable1 ,variable2 = 1,2;
local pyf = sort(variable1,variable2);
print("pyf=%d",pyf);
--表,对象的使用
local biao = {name = "pyf",age = 24,score = 90};
print("name = "..biao.name,biao.age,biao.score);
--创建精灵的方式,以及对精灵设置各种属性
local p = cc.Sprite:create("ze.png")
p:setPosition(cc.p(500,500));
p:setAnchorPoint(cc.p(0,0));
p:setColor(cc.c3b(255,255,0));
self:addChild(p);
--动作(注意:by才有reverse,to是没有的)
local act1 = cc.JumpTo:create(5,cc.p(0,0),100,100);
-- p:runAction(cc.RepeatForever:create(act1));
local m1 = cc.MoveBy:create(2,cc.p(500,500));
local m2 = m1:reverse();
p:runAction(cc.Sequence:create(m1,m2));
--动画
local sprite_ani = cc.Sprite:create();
sprite_ani:setAnchorPoint(cc.p(0,0))
sprite_ani:setPosition(cc.p(0,0));
self:addChild(sprite_ani);
local animation = cc.Animation:create();
for i = 1 ,7 do
local name = i..".png";
animation:addSpriteFrameWithFile(name);
end
animation:setDelayPerUnit(2.8/14.0);
animation:setRestoreOriginalFrame(true);
animation:setLoops(1);
local ani = cc.Animate:create(animation);
sprite_ani:runAction(ani);
--label
local label = cc.Label:create();
label:setString("000");
label:setPosition(cc.p(100,100));
self:addChild(label);
--tocher
--local node1 = cc.Node:create()
--self:addChild(node)
--print("node is ok")
--node1:setTouchEnabled(true)
--正常的触摸监听事件
local function onTouchBegan(touch, event)
print("0000000")
return true
end
local function onTouchMoved(touch, event)
print("11111111111")
end
local function onTouchEnded(touch, event)
print("2222222222222")
end
local listener1 = cc.EventListenerTouchOneByOne:create()--单点触摸
listener1:setSwallowTouches(true)
listener1:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
listener1:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED )
listener1:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
-- local eventDispatcher = self:getEventDispatcher()
-- eventDispatcher:addEventListenerWithSceneGraphPriority(listener1, self)
self:getEventDispatcher():addEventListenerWithSceneGraphPriority(listener1,self)--给层添加监听
--cocostdio UI编辑器
local m_widget = ccs.GUIReader:getInstance():widgetFromJsonFile("Common_RoomEX.json")
m_widget:setPosition(cc.p(-100,-100))
self:addChild(m_widget)
--按钮回调函数
local function ButtonCallBack(sender, eventType)
if eventType == ccui.TouchEventType.ended then
local n = sender:getTag();
if n == 594 then --594按钮
print(n.."button is touch!");
end
end
end
--按钮
local button1 = m_widget:getChildByName("Button_quZhouMahjong");
button1:setColor(cc.c3b(255,255,0));
button1:addTouchEventListener(ButtonCallBack)
--checkBox回调函数
local function checkCallBack(sender,eveneType)
print("checkBox is touch!");
end
--checkBox
local checkbox = m_widget:getChildByName("CheckBox_AAFanKa0");
checkbox:setVisible(true)
checkbox:addTouchEventListener(checkCallBack);
end
return MainScene
好了,到这里基本上把平时用的最多的几个控件都熟悉了一下,下面就靠自己的尝试了。