axmol/samples/TestLua/Resources/luaScript/EffectsTest/EffectsTest.lua

425 lines
11 KiB
Lua

require "luaScript/EffectsTest/EffectsName"
local ActionIdx = -1
local size = CCDirector:sharedDirector():getWinSize()
local kTagTextLayer = 1
local kTagBackground = 1
local kTagLabel = 2
local MAX_LAYER = 22
local testLayer = nil
local titleLabel = nil
local entry = nil
local function onEnterOrExit(tag)
local scheduler = CCDirector:sharedDirector():getScheduler()
if tag == 0 then
entry = scheduler:scheduleScriptFunc(checkAnim, 0, false)
elseif tag == 1 then
scheduler:unscheduleScriptEntry(entry)
end
end
local function checkAnim(dt)
local s2 = testLayer:getChildByTag(kTagBackground)
if s2 == nil then
return
end
if s2:numberOfRunningActions() == 0 then
if s2:getGrid() ~= nil then
s2:setGrid(nil)
end
end
end
local function backAction()
ActionIdx = ActionIdx - 1
if ActionIdx < 0 then
ActionIdx = ActionIdx + MAX_LAYER
end
return CreateEffectsTestLayer()
end
local function restartAction()
return CreateEffectsTestLayer()
end
local function nextAction()
ActionIdx = ActionIdx + 1
ActionIdx = math.mod(ActionIdx, MAX_LAYER)
return CreateEffectsTestLayer()
end
local function backCallback(sender)
local scene = CCScene:create()
scene:addChild(backAction())
scene:addChild(CreateBackMenuItem())
CCDirector:sharedDirector():replaceScene(scene)
end
local function restartCallback(sender)
local scene = CCScene:create()
scene:addChild(restartAction())
scene:addChild(CreateBackMenuItem())
CCDirector:sharedDirector():replaceScene(scene)
end
local function nextCallback(sender)
local scene = CCScene:create()
scene:addChild(nextAction())
scene:addChild(CreateBackMenuItem())
CCDirector:sharedDirector():replaceScene(scene)
end
--------------------------------------
-- Shaky3DDemo
--------------------------------------
local function Shaky3DDemo(t)
return CCShaky3D:create(5, false, ccg(15,10), t)
end
--------------------------------------
-- Waves3DDemo
--------------------------------------
local function Waves3DDemo(t)
return CCWaves3D:create(5, 40, ccg(15,10), t)
end
--------------------------------------
-- FlipX3DDemo
--------------------------------------
local function FlipX3DDemo(t)
local flipx = CCFlipX3D:create(t)
local flipx_back = flipx:reverse()
local delay = CCDelayTime:create(2)
local array = CCArray:create()
array:addObject(flipx)
array:addObject(flipx_back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- FlipY3DDemo
--------------------------------------
local function FlipY3DDemo(t)
local flipy = CCFlipY3D:create(t)
local flipy_back = flipy:reverse()
local delay = CCDelayTime:create(2)
local array = CCArray:create()
array:addObject(flipy)
array:addObject(flipy_back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- Lens3DDemo
--------------------------------------
local function Lens3DDemo(t)
return CCLens3D:create(CCPointMake(size.width / 2,size.height / 2), 240, ccg(15,10), t)
end
--------------------------------------
-- Ripple3DDemo
--------------------------------------
local function Ripple3DDemo(t)
return CCRipple3D:create(CCPointMake(size.width / 2,size.height / 2), 240, 4, 160, ccg(32,24), t)
end
--------------------------------------
-- LiquidDemo
--------------------------------------
local function LiquidDemo(t)
return CCLiquid:create(4, 20, ccg(16,12), t)
end
--------------------------------------
-- WavesDemo
--------------------------------------
local function WavesDemo(t)
return CCWaves:create(4, 20, true, true, ccg(16, 12), t)
end
--------------------------------------
-- TwirlDemo
--------------------------------------
local function TwirlDemo(t)
return CCTwirl:create(CCPointMake(size.width / 2, size.height / 2), 1, 2.5, ccg(12, 8), t)
end
--------------------------------------
-- ShakyTiles3DDemo
--------------------------------------
local function ShakyTiles3DDemo(t)
return CCShakyTiles3D:create(5, false, ccg(16,12), t)
end
--------------------------------------
-- ShatteredTiles3DDemo
--------------------------------------
local function ShatteredTiles3DDemo(t)
return CCShatteredTiles3D:create(5, false, ccg(16,12), t)
end
--------------------------------------
-- ShuffleTilesDemo
--------------------------------------
local function ShuffleTilesDemo(t)
local shuffle = CCShuffleTiles:create(25, ccg(16,12), t)
local shuffle_back = shuffle:reverse()
local delay = CCDelayTime:create(2)
local array = CCArray:create()
array:addObject(shuffle)
array:addObject(shuffle_back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- FadeOutTRTilesDemo
--------------------------------------
local function FadeOutTRTilesDemo(t)
local fadeout = CCFadeOutTRTiles:create(ccg(16,12), t)
local back = fadeout:reverse()
local delay = CCDelayTime:create(0.5)
local array = CCArray:create()
array:addObject(fadeout)
array:addObject(back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- FadeOutBLTilesDemo
--------------------------------------
local function FadeOutBLTilesDemo(t)
local fadeout = CCFadeOutBLTiles:create(ccg(16,12), t)
local back = fadeout:reverse()
local delay = CCDelayTime:create(0.5)
local array = CCArray:create()
array:addObject(fadeout)
array:addObject(back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- FadeOutUpTilesDemo
--------------------------------------
local function FadeOutUpTilesDemo(t)
local fadeout = CCFadeOutUpTiles:create(ccg(16,12), t)
local back = fadeout:reverse()
local delay = CCDelayTime:create(0.5)
local array = CCArray:create()
array:addObject(fadeout)
array:addObject(back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- FadeOutDownTilesDemo
--------------------------------------
local function FadeOutDownTilesDemo(t)
local fadeout = CCFadeOutDownTiles:create(ccg(16,12), t)
local back = fadeout:reverse()
local delay = CCDelayTime:create(0.5)
local array = CCArray:create()
array:addObject(fadeout)
array:addObject(back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- TurnOffTilesDemo
--------------------------------------
local function TurnOffTilesDemo(t)
local fadeout = CCTurnOffTiles:create(25, ccg(48, 32), t)
local back = fadeout:reverse()
local delay = CCDelayTime:create(0.5)
local array = CCArray:create()
array:addObject(fadeout)
array:addObject(back)
array:addObject(delay)
return CCSequence:create(array)
end
--------------------------------------
-- WavesTiles3DDemo
--------------------------------------
local function WavesTiles3DDemo(t)
return CCWavesTiles3D:create(4, 120, ccg(15,10), t)
end
--------------------------------------
-- JumpTiles3DDemo
--------------------------------------
local function JumpTiles3DDemo(t)
return CCJumpTiles3D:create(2, 30, ccg(15,10), t)
end
--------------------------------------
-- SplitRowsDemo
--------------------------------------
local function SplitRowsDemo(t)
return CCSplitRows:create(9, t)
end
--------------------------------------
-- SplitColsDemo
--------------------------------------
local function SplitColsDemo(t)
return CCSplitCols:create(9, t)
end
--------------------------------------
-- PageTurn3DDemo
--------------------------------------
local function PageTurn3DDemo(t)
CCDirector:sharedDirector():setDepthTest(true)
return CCPageTurn3D:create(ccg(15,10), t)
end
--------------------------------------
-- Effects Test
--------------------------------------
local function createEffect(idx, t)
CCDirector:sharedDirector():setDepthTest(false)
local action = nil
if idx == 0 then
action = Shaky3DDemo(t)
elseif idx == 1 then
action = Waves3DDemo(t)
elseif idx == 2 then
action = FlipX3DDemo(t)
elseif idx == 3 then
action = FlipY3DDemo(t)
elseif idx == 4 then
action = Lens3DDemo(t)
elseif idx == 5 then
action = Ripple3DDemo(t)
elseif idx == 6 then
action = LiquidDemo(t)
elseif idx == 7 then
action = WavesDemo(t)
elseif idx == 8 then
action = TwirlDemo(t)
elseif idx == 9 then
action = ShakyTiles3DDemo(t)
elseif idx == 10 then
action = ShatteredTiles3DDemo(t)
elseif idx == 11 then
action = ShuffleTilesDemo(t)
elseif idx == 12 then
action = FadeOutTRTilesDemo(t)
elseif idx == 13 then
action = FadeOutBLTilesDemo(t)
elseif idx == 14 then
action = FadeOutUpTilesDemo(t)
elseif idx == 15 then
action = FadeOutDownTilesDemo(t)
elseif idx == 16 then
action = TurnOffTilesDemo(t)
elseif idx == 17 then
action = WavesTiles3DDemo(t)
elseif idx == 18 then
action = JumpTiles3DDemo(t)
elseif idx == 19 then
action = SplitRowsDemo(t)
elseif idx == 20 then
action = SplitColsDemo(t)
elseif idx == 21 then
action = PageTurn3DDemo(t)
end
return action
end
function CreateEffectsTestLayer()
testLayer = CCLayerColor:create(ccc4(32,128,32,255))
local x, y = size.width, size.height
local node = CCNode:create()
local effect = createEffect(ActionIdx, 3)
node:runAction(effect)
testLayer:addChild(node, 0, kTagBackground)
local bg = CCSprite:create(s_back3)
node:addChild(bg, 0)
bg:setPosition(CCPointMake(size.width / 2, size.height / 2))
local grossini = CCSprite:create(s_pPathSister2)
node:addChild(grossini, 1)
grossini:setPosition( CCPointMake(x / 3, y / 2) )
local sc = CCScaleBy:create(2, 5)
local sc_back = sc:reverse()
grossini:runAction(CCRepeatForever:create(CCSequence:createWithTwoActions(sc, sc_back)))
local tamara = CCSprite:create(s_pPathSister1)
node:addChild(tamara, 1)
tamara:setPosition(CCPointMake(2 * x / 3, y / 2))
local sc2 = CCScaleBy:create(2, 5)
local sc2_back = sc2:reverse()
tamara:runAction(CCRepeatForever:create(CCSequence:createWithTwoActions(sc2, sc2_back)))
titleLabel = CCLabelTTF:create(EffectsList[ActionIdx], "Marker Felt", 32)
titleLabel:setPosition(x / 2, y - 80)
testLayer:addChild(titleLabel)
titleLabel:setTag(kTagLabel)
local item1 = CCMenuItemImage:create(s_pPathB1, s_pPathB2)
local item2 = CCMenuItemImage:create(s_pPathR1, s_pPathR2)
local item3 = CCMenuItemImage:create(s_pPathF1, s_pPathF2)
item1:registerScriptTapHandler(backCallback)
item2:registerScriptTapHandler(restartCallback)
item3:registerScriptTapHandler(nextCallback)
local menu = CCMenu:create()
menu:addChild(item1)
menu:addChild(item2)
menu:addChild(item3)
menu:setPosition(CCPointMake(0, 0))
item1:setPosition(CCPointMake(size.width/2 - item2:getContentSize().width * 2, item2:getContentSize().height / 2))
item2:setPosition(CCPointMake(size.width/2, item2:getContentSize().height / 2))
item3:setPosition(CCPointMake(size.width/2 + item2:getContentSize().width * 2, item2:getContentSize().height / 2))
testLayer:addChild(menu, 1)
testLayer:registerScriptHandler(onEnterOrExit)
return testLayer
end
function EffectsTest()
local scene = CCScene:create()
ActionIdx = -1
scene:addChild(nextAction())
scene:addChild(CreateBackMenuItem())
return scene
end