|
- -- 使用新动画(参考跑得快过来)
-
- local DDZNewEffectHelper = class("DDZNewEffectHelper")
-
- function DDZNewEffectHelper:ctor( o )
-
- end
-
- -- 新顺子,不知道为何,imageview不能更改为node
- function DDZNewEffectHelper:getShunziNew()
- local node = cc.ImageView:create()
- node:setOpacity(0)
- node.onEnter = function (nd)
- -- 顺子两字
- local img_shun = cc.ImageView:create()
- local img_zi = cc.ImageView:create()
- img_shun:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_shunzi/zy_ddz_img_shun.png')
- img_shun:setPositionX(img_shun:getPositionX() - 50)
- img_zi:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_shunzi/zy_ddz_img_zi.png')
- img_zi:setPositionX(img_zi:getPositionX() + 50)
- node:addChild(img_shun)
- node:addChild(img_zi)
-
- -- 顺子模糊动画
- local img_shun_mohu = cc.ImageView:create()
- local img_zi_mohu = cc.ImageView:create()
- img_shun_mohu:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_shunzi/zy_ddz_img_shunmohu_1.png')
- img_shun_mohu:setPositionX(img_shun:getPositionX() + 300)
- img_shun_mohu:setPositionY(img_shun:getPositionY())
- img_zi_mohu:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_shunzi/zy_ddz_img_shunmohu_2.png')
- img_zi_mohu:setPositionX(img_zi:getPositionX() + 300)
- img_zi_mohu:setPositionY(img_zi:getPositionY())
- node:addChild(img_shun_mohu)
- node:addChild(img_zi_mohu)
-
- -- 移除本体
- local function removeSelf()
- node:runAction(cc.Sequence:create(cc.FadeOut:create(0.05), cc.CallFunc:create(function() node:removeFromParent() end)))
- end
-
- -- 模糊动画
- local function showMoHu()
- local shun_time = 0.2
- local zi_time = 0.4
-
- -- 顺_模糊字
- local shun_moveTo = cc.MoveTo:create(shun_time, cc.p(img_shun:getPositionX(), img_shun:getPositionY()))
- local shun_removeCallback = cc.CallFunc:create(function()
- img_shun_mohu:removeFromParent()
- end)
- local shun_seqAni = cc.Sequence:create(shun_moveTo, shun_removeCallback)
- img_shun_mohu:runAction(shun_seqAni)
-
- -- 子_模糊字
- local zi_moveTo = cc.MoveTo:create(zi_time, cc.p(img_zi:getPositionX(), img_zi:getPositionY()))
- local zi_removeCallback = cc.CallFunc:create(function()
- img_zi_mohu:removeFromParent()
- end)
- local zi_seqAni = cc.Sequence:create(zi_moveTo, zi_removeCallback)
- img_zi_mohu:runAction(zi_seqAni)
- end
-
- -- 粒子光动画
- local function showLizi_Light()
- local lizi_light = cc.ImageView:create()
- lizi_light:setPosition(cc.p(img_zi:getPositionX() + 100, img_zi:getPositionY()))
- node:addChild(lizi_light)
-
- for i = 1, 15 do
- local ac = cc.Sequence:create(cc.DelayTime:create(0.05*(i-1)), cc.CallFunc:create(function ()
- lizi_light:loadTexture(string.format("zy_ddz_CardFX_ShunZi_Sheet1_%02d.png", i), 1)
- end))
- lizi_light:runAction(cc.Spawn:create(ac, cc.MoveBy:create(0.7, cc.p(-20, 0))))
- end
- lizi_light:runAction(cc.Sequence:create(cc.DelayTime:create(0.7), cc.FadeOut:create(0.1), cc.CallFunc:create(function() lizi_light:removeFromParent() end)))
- end
-
- -- 粒子风动画
- local function showLizi_Wind()
- local lizi_wind = cc.ImageView:create()
- lizi_wind:setPosition(cc.p(img_zi:getPositionX() + 100, img_zi:getPositionY()))
- lizi_wind:setOpacity(100)
- node:addChild(lizi_wind)
-
- for i = 1, 13 do
- local ac = cc.Sequence:create(cc.DelayTime:create(0.05*(i-1)), cc.CallFunc:create(function ()
- lizi_wind:loadTexture(string.format("zy_ddz_CardFX_ShunZi_Sheet2_%02d.png", i), 1)
- end))
- lizi_wind:runAction(cc.Spawn:create(ac, cc.MoveBy:create(0.7, cc.p(-20, 0))))
- end
- lizi_wind:runAction(cc.Sequence:create(cc.DelayTime:create(0.7), cc.FadeOut:create(0.1), cc.CallFunc:create(function()
- lizi_wind:removeFromParent()
- removeSelf()
- end)))
- end
-
- -- 动画播放
- local spawnAni = cc.Spawn:create(
- cc.FadeIn:create(0.1),
- cc.CallFunc:create(showMoHu),
- cc.CallFunc:create(showLizi_Light),
- cc.CallFunc:create(showLizi_Wind)
- )
- nd:runAction(spawnAni)
- end
- return node
- end
-
- -- 新连对
- function DDZNewEffectHelper:getLianduiNew()
- local node = cc.ImageView:create()
- node.onEnter = function (nd)
-
- -- 移除本体
- local function removeSelf()
- node:runAction(cc.Sequence:create(cc.FadeOut:create(0.02), cc.CallFunc:create(function() node:removeFromParent() end)))
- end
-
- local img_liandui = cc.ImageView:create()
- img_liandui:loadTexture('zy_ddz_CardFX_LianDui_2.png', 1)
- img_liandui:setScale(2)
- img_liandui:setLocalZOrder(5)
- node:addChild(img_liandui)
-
- -- 添加模糊
- local function showMoHu()
- -- 这里需要用到颜色混合,所以用sprite
- local img_mohu = cc.Sprite:create()
- img_mohu:setSpriteFrame('zy_ddz_CardFX_LianDui_1.png')
- img_mohu:setScale(2.5)
- img_mohu:setLocalZOrder(1)
- node:addChild(img_mohu)
-
- local seqAni_mohu = cc.Sequence:create(
- cc.ScaleTo:create(0.2, 1.3),
- cc.FadeTo:create(0.6, 0),
- cc.CallFunc:create(function()
- img_mohu:removeFromParent()
- end)
- )
- img_mohu:runAction(seqAni_mohu)
-
- local img_light = cc.Sprite:create()
- img_light:setSpriteFrame('zy_ddz_CardFX_LianDui_3.png')
- img_light:setScale(3.2, 1.6)
- img_light:setLocalZOrder(2)
- img_light:setOpacity(160)
- img_light:setBlendFunc(gl.ONE, gl.ONE)
- node:addChild(img_light)
-
- local seqAni_light = cc.Sequence:create(
- cc.ScaleTo:create(0.2, 1.3),
- cc.FadeTo:create(0.4, 0),
- cc.CallFunc:create(function()
- img_light:setVisible(false)
- end),
- cc.DelayTime:create(0.3),
- cc.CallFunc:create(function()
- img_light:removeFromParent()
- img_liandui:removeFromParent()
- removeSelf()
- end)
- )
- img_light:runAction(seqAni_light)
- end
-
- local seqAni = cc.Sequence:create(
- cc.ScaleTo:create(0.2, 0.8),
- cc.ScaleTo:create(0.1, 0.9),
- cc.Spawn:create(cc.ScaleTo:create(0.1, 0.6), cc.CallFunc:create(showMoHu))
- )
- img_liandui:runAction(seqAni)
- end
- return node
- end
-
- -- 新炸弹
- function DDZNewEffectHelper:getBombNew()
- local node = cc.ImageView:create()
- node.onEnter = function (nd)
-
- -- 移除本体
- local function removeSelf()
- node:runAction(cc.Sequence:create(cc.FadeOut:create(0.05), cc.CallFunc:create(function() node:removeFromParent() end)))
- end
-
- local img_bomb = cc.ImageView:create()
- img_bomb:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_bomb/zy_ddz_zhadan.png')
- img_bomb:setScale(0.1)
- img_bomb:setRotation(math.random(0, 30))
- node:addChild(img_bomb)
-
-
- local time = 0.2
- local winSize = cc.Director:getInstance():getWinSize()
- local worldPos = cc.p(winSize.width/2, winSize.height/2 + 80)
- local localPos = node:convertToNodeSpace(worldPos)
-
- local function endSeqCallFunc()
- img_bomb:setVisible(false)
-
-
- -- 地板裂痕
- local img_floor_lizi = cc.ImageView:create()
- img_floor_lizi:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_bomb/zy_ddz_dilie.png')
- img_floor_lizi:setScale(0.2)
- img_floor_lizi:setPosition(cc.p(localPos.x, localPos.y - 50))
- node:addChild(img_floor_lizi)
-
- local ani_scale_floor = cc.ScaleTo:create(0.1, 0.6)
- img_floor_lizi:runAction(ani_scale_floor)
-
- -- 爆炸光晕
- local img_boom_yun = cc.ImageView:create()
- img_boom_yun:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_bomb/zy_ddz_zdguang_1.png')
- img_boom_yun:setScale(2)
- img_boom_yun:setOpacity(150)
- img_boom_yun:setPosition(cc.p(localPos.x, localPos.y - 20))
- node:addChild(img_boom_yun)
-
- local ani_fade_yun = cc.FadeTo:create(0.5, 0)
- img_boom_yun:runAction(ani_fade_yun)
-
- -- 爆炸粒子
- local img_bomb_lizi = cc.ImageView:create()
- img_bomb_lizi:setScale(1.5)
- img_bomb_lizi:setPosition(localPos)
- node:addChild(img_bomb_lizi)
- for i=1,14 do
- local ac = cc.Sequence:create(cc.DelayTime:create(0.05*(i-1)), cc.CallFunc:create(function ()
- img_bomb_lizi:loadTexture(string.format("zy_ddz_CardFX_ZhaDan_Sheet1_%02d.png", i), 1)
- end))
- img_bomb_lizi:runAction(ac)
- end
-
- img_bomb_lizi:runAction(cc.Sequence:create(cc.DelayTime:create(0.05*14), cc.CallFunc:create(function()
- img_bomb_lizi:removeFromParent()
- img_boom_yun:removeFromParent()
- img_floor_lizi:removeFromParent()
- img_bomb:removeFromParent()
- removeSelf()
- end)))
-
- end
-
- local seqAni = cc.Sequence:create(
- cc.Spawn:create(
- cc.RotateBy:create(time, 60),
- cc.ScaleTo:create(time, 0.4),
- cc.MoveTo:create(time, localPos)
- ),
- cc.CallFunc:create(endSeqCallFunc)
- )
-
- img_bomb:runAction(seqAni)
- end
- return node
- end
-
- -- 新飞机
- function DDZNewEffectHelper:getPlanNew()
- local node = cc.ImageView:create()
- node.onEnter = function (nd)
- local plane = cc.ImageView:create()
- plane:loadTexture('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_plan/zy_ddz_feiji.png')
- plane:setAnchorPoint(cc.p(0.5, 0.5))
- plane:setScale(0.5)
- plane:setEulerRotation(cc.vec3(0, 0, 70))
- node:addChild(plane)
-
- -- 添加尾气
- local weiqi = cc.ImageView:create()
- local weiqiRes = 'pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_plan/zy_ddz_weiqi_1.png'
- weiqi:loadTexture(weiqiRes)
- weiqi:setPosition(cc.p(plane:getContentSize().width - 30, plane:getContentSize().height/2 - 20))
- weiqi:setLocalZOrder(-1)
- plane:addChild(weiqi)
-
- -- 尾气动画
- local changeFrameTime = 0.1
- local frameIndex = 1
- local frameMaxIndex = 2
- local function changeImage()
- frameIndex = frameIndex + 1
- if frameIndex > frameMaxIndex then
- frameIndex = 1
- end
- weiqiRes = string.format('pk_doudizhu/res/ui/zy_fangjian/doudizhu_cardsAni/zy_ddz_plan/zy_ddz_weiqi_%d.png', frameIndex)
- weiqi:loadTexture(weiqiRes)
- end
- weiqi:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.DelayTime:create(changeFrameTime), cc.CallFunc:create(changeImage))))
-
- -- 移除本体
- local function removeSelf()
- node:runAction(cc.Sequence:create(cc.FadeOut:create(0.1), cc.CallFunc:create(function()
- plane:removeFromParent()
- node:removeFromParent()
- end)))
- end
-
- local winSize = cc.Director:getInstance():getWinSize()
- local StartWorldPos = cc.p(winSize.width + 100, winSize.height + 200)
- local startPos = node:convertToNodeSpace(StartWorldPos)
- plane:setPosition(startPos)
-
-
- local time = 1.2
- local angle = -100 -- 旋转度数
- local newAngle = 2 * math.pi * angle / 360 -- π是半圈,貌似被更改了底层
- local pos1 = node:convertToNodeSpace(cc.p(winSize.width, 0))
- local pos2 = node:convertToNodeSpace(cc.p(winSize.width/2, 0))
- local endPos = node:convertToNodeSpace(cc.p(-300, winSize.height + 300))
- local bezier = {
- pos1,
- pos2,
- endPos
- }
-
- local aniBez = cc.EaseIn:create(cc.BezierTo:create(time, bezier), 1.5)
- local aniRotateBy = cc.EaseIn:create(cc.RotateBy:create(time, newAngle), 1.8)
- local aniScaleTo = cc.EaseIn:create(cc.ScaleTo:create(time, 2), 2)
- local spaAni = cc.Spawn:create(
- aniBez,
- aniRotateBy,
- aniScaleTo
- )
-
- local seqAni = cc.Sequence:create(
- spaAni,
- cc.CallFunc:create(removeSelf)
- )
-
- plane:runAction(seqAni)
- end
- return node
- end
-
- -- 新王炸
- function DDZNewEffectHelper:getKingBombNew()
- local node = cc.ImageView:create()
- node:setOpacity(0)
- node.onEnter = function()
- local nd = cc.ImageView:create()
- node:addChild(nd)
-
- local winSize = cc.Director:getInstance():getWinSize()
- local worldPos = cc.p(winSize.width/2, winSize.height/2 + 80)
- local localPos = node:convertToNodeSpace(worldPos)
- nd:setPosition(localPos)
-
- local frameDelay = 0.032
- for i=1,31 do
- local ac = cc.Sequence:create(cc.DelayTime:create(frameDelay*(i-1)), cc.CallFunc:create(function ()
- nd:loadTexture(string.format("doudizhu_Ani_KingBomb_%d.png", i), 1)
- end))
- nd:runAction(ac)
- end
- node:runAction(cc.Sequence:create(cc.FadeIn:create(0.3), cc.DelayTime:create(frameDelay * 30 - 0.3), cc.FadeOut:create(0.1), cc.CallFunc:create(function() node:removeFromParent() end)))
- end
- return node
- end
-
- return DDZNewEffectHelper
|