一些暂存的动画

来源:互联网 发布:gcp网络报名 编辑:程序博客网 时间:2024/06/05 23:02
local MainScene = class("MainScene", function()    return display.newScene("MainScene")end)--测试图片随另一个图片动画function MainScene:Test01()    --设置背景色为天蓝色    display.newColorLayer(cc.c4b(127,255,0,255)):addTo(self)      --创建一个layout,然后和其相关的其他精灵,随着他的出现而消失,随着他的消失而出现    --循环创建一组精灵    local spTb={}    local pt=cc.p(display.cx-300,50)    for i=1,5 do        -- 左对齐,并且多行文字顶部对齐        local label = display.newTTFLabel({            text = tostring(i),            font = "Arial",            size = 30,            color = cc.c3b(255, 0, 0), -- 使用纯红色            align = cc.TEXT_ALIGNMENT_CENTER,            valign = cc.VERTICAL_TEXT_ALIGNMENT_CENTER,            dimensions = cc.size(100, 50)        })        pt.x=pt.x+100        local tmpSp=display.newSprite("img1.png"):addTo(self,10,i):pos(pt.x,pt.y):add(label,10)        table.insert(spTb,tmpSp)    end    --创建一个button     local btn=cc.ui.UIPushButton.new("img3.png")    :align(display.right, display.right - 100, display.bottom + 50)    :addTo(self)    local spCount=#spTb    btn:onButtonClicked(function()        print("i was touched")        if btn:getPositionX()<display.right - 100 then--该回来了            -- btn:moveBy(1.5, 200, 0)            btn:setTouchEnabled(false)            transition.execute(btn, cc.MoveBy:create(1.5,cc.p(200,0)), {                easing = "exponentialOut",                onComplete = function()                    btn:setTouchEnabled(true)                end,            })            print("-----")            --同时,让序列精灵退出            for k,v in pairs(spTb) do                transition.execute(v, cc.MoveBy:create(0.5,cc.p(0,100)), {                    delay = k*0.2,                    easing = "exponentialOut",                })            end        else--该出去了            -- btn:moveBy(1.5, -200, 0)             btn:setTouchEnabled(false)            transition.execute(btn, cc.MoveBy:create(1.5,cc.p(-200,0)), {                easing = "exponentialOut",                onComplete = function()                    btn:setTouchEnabled(true)                end,            })            for k,v in pairs(spTb) do                transition.execute(v, cc.MoveBy:create(0.5,cc.p(0,-100)), {                    delay = (spCount-k)*0.2,                    easing = "exponentialOut",                })            end        end    end)end--传入btn,传入控制对象,传入要弹出的方向,left,right,down,upfunction MainScene:func1(btn,node,direction )    if not btn or not node then        return false    end     if direction==nil then        direction="right"    end    btn.scaleStatus=false    btn:onButtonClicked(function()        --然后执行缩放动画        transition.execute(node,transition.scaleTo(node, btn.scaleStatus and {scale=0.1,time=0.2} or {scale=1,time=0.2}),            {                onComplete = function()                    if btn.scaleStatus then                        btn.scaleStatus=false                    else                        btn.scaleStatus=true                    end                    print("move completed")                end,            }        )    end)end--点击一个按钮,弹出一个层function MainScene:Test02()    --创建一个按钮    local btn=cc.ui.UIPushButton.new("img1.png")    :align(display.CENTER, display.CENTER, display.CENTER)    :addTo(self)    :pos(display.right-100,display.cy)    --创建一个层,    -- local node=display.newNode():addTo(self)    -- :pos(display.cx,display.cy)    -- node:setAnchorPoint(cc.p(0,0.5))    local ly=require("src.app.scenes.myTest").new()    :scale(0.1)    :addTo(self)    :pos(display.left,display.cy)    ly:setAnchorPoint(cc.p(0,1))    ly:setTouchEnabled(false)    ly:setContentSize(cc.size(300,300))    self:func1(btn, ly)endfunction MainScene:CellMove(infoTb,distance,time,isIn)    if not infoTb then        return    end    local moveTb=cc.p(0,0)    if isIn and infoTb.direction=="left" then        moveTb=cc.p(distance,0)    elseif isIn and infoTb.direction=="right" then        moveTb=cc.p(-distance,0)    elseif isIn and infoTb.direction=="down" then        moveTb=cc.p(0,distance)    elseif isIn and infoTb.direction=="up" then        moveTb=cc.p(0,-distance)    elseif not isIn and infoTb.direction=="left" then        moveTb=cc.p(-distance,0)    elseif not isIn and infoTb.direction=="right" then        moveTb=cc.p(distance,0)    elseif not isIn and infoTb.direction=="down" then        moveTb=cc.p(0,-distance)    elseif not isIn and infoTb.direction=="up" then        moveTb=cc.p(0,distance)     end    for k,v in pairs(infoTb.nodes) do        v:moveBy(0.2, moveTb.x, moveTb.y)    endend--传入上下左右的表,传入移动距离,传入时间,传入进入还是退出function MainScene:func2(infoTb,distance,time,isIn)    for k,v in pairs(infoTb) do        self:CellMove(v,distance,time,isIn)    endend--上下左右进入退出function MainScene:Test03()    local topTb={}    for i=0,5 do        local sp=display.newSprite("img1.png", display.cx-200+i*100, display.top-50):addTo(self)        table.insert(topTb,sp)    end    local bottomTb={}    for i=0,5 do        local sp=display.newSprite("img1.png", display.cx-200+i*100, display.bottom+50):addTo(self)        table.insert(bottomTb,sp)    end    local leftTb={}    for i=0,5 do        local sp=display.newSprite("img1.png", display.left+50, display.cy-200+i*100):addTo(self)        table.insert(leftTb,sp)    end       local rightTb={}    for i=0,5 do        local sp=display.newSprite("img1.png", display.right-50, display.cy-200+i*100):addTo(self)        table.insert(rightTb,sp)    end    local infoTb={        {direction="left",nodes=leftTb},        {direction="right",nodes=rightTb},        {direction="up",nodes=topTb},        {direction="down",nodes=bottomTb}    }    local btn=cc.ui.UIPushButton.new("img3.png")    :align(display.right, display.CENTER, display.CENTER)    :addTo(self)    :pos(display.cx, display.cy)    btn.isMoveOut=false    btn:onButtonClicked(            function()                self:func2(infoTb, 200, 0.2, btn.isMoveOut)                btn.isMoveOut=not btn.isMoveOut            end        )end--序列进入,序列消失function MainScene:inOrOut(infoTb,isIn)    if not infoTb then        return    end    if isIn then        for k,v in pairs(infoTb) do            transition.execute(v,cc.FadeIn:create(0.2),{delay=k*0.2})        end    else        local count=#infoTb        for k,v in pairs(infoTb) do            transition.execute(v,cc.FadeOut:create(0.2),{delay=(count-k)*0.2})        end    endend--序列进入,序列消失function MainScene:Test04()    --创建序列精灵    local infoTb={}    for i=1,6 do        local sp=display.newSprite("img1.png",display.cx,display.top-i*100):addTo(self)        table.insert(infoTb,sp)    end    local btn=cc.ui.UIPushButton.new("img3.png")    :align(display.right, display.CENTER, display.CENTER)    :addTo(self)    :pos(display.cx-200, display.cy)    btn.isShow=true    btn:onButtonClicked(            function()                self:inOrOut(infoTb,not btn.isShow)                btn.isShow=not btn.isShow            end    )end--随机拍照实现 function MainScene:randomTakePhoto(ptTb,sp)    local seqAction=cc.Sequence:create(            cc.CallFunc:create(function()                sp:setPosition(ptTb[math.random(1,#ptTb)])                sp:setScale(0.01)                sp:setVisible(true)            end),            cc.CallFunc:create(function()                -- sp:runAction(rotateAction)                sp:scaleTo(0.5,1)                sp:rotateBy(0.5, 360)                -- sp:runAction(scaleToAction)            end),            cc.DelayTime:create(0.3),            cc.CallFunc:create(function()                -- sp:runAction(revAction)                sp:scaleTo(0.5,0.01)                sp:rotateBy(0.5,360)                -- sp:runAction(cc.ScaleTo:create(0.5,0.01))            end),            cc.DelayTime:create(0.3),            cc.CallFunc:create(function()                sp:setVisible(false)            end)        )    sp:runAction(seqAction)end--随机拍照function MainScene:Test05()    math.randomseed(os.time())    local ptTb={}    for i=1,100 do        local pt=cc.p(display.width*math.random(),display.height*math.random())        table.insert(ptTb,pt)    end    local sp=display.newSprite("img1.png"):addTo(self):pos(300, 300)    local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")        scheduler.scheduleGlobal(function(dt)        self:randomTakePhoto(ptTb,sp)    end,2)end--提示--圆环滚动function MainScene:Test06()    local function scrollViewListener(event)        print("the event name is -----  "..event.name)    end    local ly=display.newColorLayer(cc.c4b(255,255,0,255)):addTo(self)    --创建一个滚动层    local scrollView=cc.ui.UIScrollView.new({viewRect =cc.rect(0,0,5000,100)})    :setDirection(cc.ui.UIScrollView.DIRECTION_HORIZONTAL)    :onScroll(handler(self,scrollViewListener))    :addTo(ly)    :pos(display.left, display.cy)    scrollView:setTouchEnabled(true)    local mainNode=display.newNode()    scrollView:addScrollNode(mainNode)    for i=1,4 do        local sp=display.newSprite("img1.png",i*100,50)        mainNode:addChild(sp, 100)    endendfunction MainScene:scrollListener(event)    print("TestUIScrollViewScene - scrollListener:" .. event.name)end--列表的飞入飞出function MainScene:func07(infoTb,distance,isGetOut)    local addPt=cc.p(distance,50)    local count=#infoTb    for key, var in ipairs(infoTb) do        local ptNormal=cc.p(0,0)        ptNormal.x,ptNormal.y=var:getPosition()        local ptNow=cc.p(ptNormal.x+addPt.x,ptNormal.y+addPt.y)                var:setVisible(true)        if isGetOut then            transition.execute(var,cc.MoveTo:create(0.5,ptNow),{delay=(count-key)*0.3,onComplete=function() print(" over-----") end})         else            var:setPosition(ptNow)            transition.execute(var,cc.MoveTo:create(0.5,ptNormal),{delay=(key-1)*0.3,onComplete=function() print(" over-----") end})         end             endend--列表飞入,飞出function MainScene:Test07(  )    local team1={}    for i=1,10 do        local sp=display.newSprite("img1.png",200,800-i*100):addTo(self)        sp:setVisible(false)        table.insert(team1,sp)      end        local team2={}    for i=1,10 do        local sp=display.newSprite("img3.png",500,800-i*100):addTo(self)        sp:setVisible(false)        table.insert(team2,sp)      end       local btn=cc.ui.UIPushButton.new("img3.png")        :align(display.CENTER, display.right - 100, display.bottom + 120)        :addTo(self)        :pos(display.cx,display.cy)    btn.isClicked=true    btn:onButtonClicked(        function()            if btn.isClicked then                self:func07(team1, -300)                self:func07(team2, 300)            else                self:func07(team1, -300,true)                self:func07(team2, 300,true)            end            btn.isClicked=not btn.isClicked        end    )endfunction MainScene:ctor()    cc.ui.UILabel.new({            UILabelType = 2, text = "Hello, World", size = 64})        :align(display.CENTER, display.cx, display.cy)        :addTo(self)     -- self:Test01()    -- self:Test02()      -- self:Test03()     -- self:Test04()    -- self:Test05()    -- self:Test06()    self:Test07()    -- self:Test08()endfunction MainScene:onEnter()endfunction MainScene:onExit()endreturn MainScene

0 0
原创粉丝点击