mirror of https://github.com/axmolengine/axmol.git
194 lines
5.8 KiB
Lua
194 lines
5.8 KiB
Lua
local MID_PUSHSCENE = 100
|
|
local MID_PUSHSCENETRAN = 101
|
|
local MID_QUIT = 102
|
|
local MID_REPLACESCENE = 103
|
|
local MID_REPLACESCENETRAN = 104
|
|
local MID_GOBACK = 105
|
|
|
|
local SceneTestLayer1 = nil
|
|
local SceneTestLayer2 = nil
|
|
local SceneTestLayer3 = nil
|
|
|
|
--------------------------------------------------------------------
|
|
--
|
|
-- SceneTestLayer1
|
|
--
|
|
--------------------------------------------------------------------
|
|
|
|
SceneTestLayer1 = function()
|
|
local ret = CCLayer:create()
|
|
|
|
local function onPushScene(tag, pSender)
|
|
local scene = CCScene:create()
|
|
local layer = SceneTestLayer2()
|
|
scene:addChild(layer, 0)
|
|
scene:addChild(CreateBackMenuItem())
|
|
CCDirector:getInstance():pushScene( scene )
|
|
end
|
|
|
|
local function onPushSceneTran(tag, pSender)
|
|
local scene = CCScene:create()
|
|
local layer = SceneTestLayer2()
|
|
scene:addChild(layer, 0)
|
|
scene:addChild(CreateBackMenuItem())
|
|
CCDirector:getInstance():pushScene( CCTransitionSlideInT:create(1, scene) )
|
|
end
|
|
|
|
|
|
local function onQuit(tag, pSender)
|
|
cclog("onQuit")
|
|
end
|
|
|
|
local item1 = CCMenuItemFont:create( "Test pushScene")
|
|
item1:registerScriptTapHandler(onPushScene)
|
|
local item2 = CCMenuItemFont:create( "Test pushScene w/transition")
|
|
item2:registerScriptTapHandler(onPushSceneTran)
|
|
local item3 = CCMenuItemFont:create( "Quit")
|
|
item3:registerScriptTapHandler(onQuit)
|
|
|
|
local arr = CCArray:create()
|
|
arr:addObject(item1)
|
|
arr:addObject(item2)
|
|
arr:addObject(item3)
|
|
local menu = CCMenu:createWithArray(arr)
|
|
menu:alignItemsVertically()
|
|
|
|
ret:addChild( menu )
|
|
|
|
local s = CCDirector:getInstance():getWinSize()
|
|
local sprite = CCSprite:create(s_pPathGrossini)
|
|
ret:addChild(sprite)
|
|
sprite:setPosition( CCPoint(s.width-40, s.height/2) )
|
|
local rotate = CCRotateBy:create(2, 360)
|
|
local repeatAction = CCRepeatForever:create(rotate)
|
|
sprite:runAction(repeatAction)
|
|
|
|
local function onNodeEvent(event)
|
|
if event == "enter" then
|
|
cclog("SceneTestLayer1#onEnter")
|
|
elseif event == "enterTransitionFinish" then
|
|
cclog("SceneTestLayer1#onEnterTransitionDidFinish")
|
|
end
|
|
end
|
|
|
|
ret:registerScriptHandler(onNodeEvent)
|
|
return ret
|
|
end
|
|
|
|
--------------------------------------------------------------------
|
|
--
|
|
-- SceneTestLayer2
|
|
--
|
|
--------------------------------------------------------------------
|
|
|
|
SceneTestLayer2 = function()
|
|
local ret = CCLayer:create()
|
|
local m_timeCounter = 0
|
|
|
|
local function onGoBack(tag, pSender)
|
|
CCDirector:getInstance():popScene()
|
|
end
|
|
|
|
local function onReplaceScene(tag, pSender)
|
|
local scene = CCScene:create()
|
|
local layer = SceneTestLayer3()
|
|
scene:addChild(layer, 0)
|
|
scene:addChild(CreateBackMenuItem())
|
|
CCDirector:getInstance():replaceScene( scene )
|
|
end
|
|
|
|
|
|
local function onReplaceSceneTran(tag, pSender)
|
|
local scene = CCScene:create()
|
|
local layer = SceneTestLayer3()
|
|
scene:addChild(layer, 0)
|
|
scene:addChild(CreateBackMenuItem())
|
|
CCDirector:getInstance():replaceScene( CCTransitionFlipX:create(2, scene) )
|
|
end
|
|
|
|
local item1 = CCMenuItemFont:create( "replaceScene")
|
|
item1:registerScriptTapHandler(onReplaceScene)
|
|
local item2 = CCMenuItemFont:create( "replaceScene w/transition")
|
|
item2:registerScriptTapHandler(onReplaceSceneTran)
|
|
local item3 = CCMenuItemFont:create( "Go Back")
|
|
item3:registerScriptTapHandler(onGoBack)
|
|
local arr = CCArray:create()
|
|
arr:addObject(item1)
|
|
arr:addObject(item2)
|
|
arr:addObject(item3)
|
|
local menu = CCMenu:createWithArray(arr)
|
|
menu:alignItemsVertically()
|
|
|
|
ret:addChild( menu )
|
|
|
|
local s = CCDirector:getInstance():getWinSize()
|
|
local sprite = CCSprite:create(s_pPathGrossini)
|
|
ret:addChild(sprite)
|
|
sprite:setPosition( CCPoint(s.width-40, s.height/2) )
|
|
local rotate = CCRotateBy:create(2, 360)
|
|
local repeat_action = CCRepeatForever:create(rotate)
|
|
sprite:runAction(repeat_action)
|
|
|
|
return ret
|
|
end
|
|
|
|
--------------------------------------------------------------------
|
|
--
|
|
-- SceneTestLayer3
|
|
--
|
|
--------------------------------------------------------------------
|
|
|
|
SceneTestLayer3 = function()
|
|
local ret = CCLayerColor:create(Color4B(0,0,255,255))
|
|
local s = CCDirector:getInstance():getWinSize()
|
|
|
|
local function item0Clicked(tag, pSender)
|
|
local newScene = CCScene:create()
|
|
newScene:addChild(SceneTestLayer3())
|
|
CCDirector:getInstance():pushScene(CCTransitionFade:create(0.5, newScene, Color3B(0,255,255)))
|
|
end
|
|
|
|
local function item1Clicked(tag, pSender)
|
|
CCDirector:getInstance():popScene()
|
|
end
|
|
|
|
local function item2Clicked(tag, pSender)
|
|
CCDirector:getInstance():popToRootScene()
|
|
end
|
|
|
|
local item0 = CCMenuItemFont:create("Touch to pushScene (self)")
|
|
item0:registerScriptTapHandler(item0Clicked)
|
|
local item1 = CCMenuItemFont:create("Touch to popScene")
|
|
item1:registerScriptTapHandler(item1Clicked)
|
|
local item2 = CCMenuItemFont:create("Touch to popToRootScene")
|
|
item2:registerScriptTapHandler(item2Clicked)
|
|
|
|
local arr = CCArray:create()
|
|
arr:addObject(item0)
|
|
arr:addObject(item1)
|
|
arr:addObject(item2)
|
|
|
|
local menu = CCMenu:createWithArray(arr)
|
|
ret:addChild(menu)
|
|
menu:alignItemsVertically()
|
|
|
|
local sprite = CCSprite:create(s_pPathGrossini)
|
|
ret:addChild(sprite)
|
|
sprite:setPosition( CCPoint(s.width/2, 40) )
|
|
local rotate = CCRotateBy:create(2, 360)
|
|
local repeatAction = CCRepeatForever:create(rotate)
|
|
sprite:runAction(repeatAction)
|
|
return ret
|
|
end
|
|
|
|
|
|
|
|
function SceneTestMain()
|
|
cclog("SceneTestMain")
|
|
local scene = CCScene:create()
|
|
local layer = SceneTestLayer1()
|
|
scene:addChild(layer, 0)
|
|
scene:addChild(CreateBackMenuItem())
|
|
return scene
|
|
end
|