一些暂存的动画
来源:互联网 发布: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
- 一些暂存的动画
- 记录本-暂存一些东西
- SED的暂存空间和模式空间的一些操作
- 一些笔试题(暂存)
- 动画 的一些心得
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- 暂存
- ETL
- EA生成代码工程
- windows环境下的.bat文件 快速运行编译用text写的java代码
- Json入门
- 浅析android系统设计中的回调思想
- 一些暂存的动画
- windows FTP上传
- 自动释放池和ARC
- 05-图3. 六度空间 (30)
- hadoop平台进行小型网站的日志分析
- 算法导论8-4
- java中的数据转换
- Android 4.4 Dialog 被状态栏遮挡的解决方法
- Android ExpandableListView的使用技巧