/samples/TestLua/Resources/luaScript/TransitionsTest/TransitionsTest.lua

https://bitbucket.org/Tsiannian/cocos2d-x · Lua · 265 lines · 216 code · 38 blank · 11 comment · 91 complexity · 2397fb0f1c2fe166d50c5cbb5634452f MD5 · raw file

  1. require "luaScript/TransitionsTest/TransitionsName"
  2. local SceneIdx = -1
  3. local CurSceneNo = 2
  4. local TRANSITION_DURATION = 1.2
  5. local s = CCDirector:sharedDirector():getWinSize()
  6. local function switchSceneTypeNo()
  7. if CurSceneNo == 1 then
  8. CurSceneNo = 2
  9. else
  10. CurSceneNo = 1
  11. end
  12. end
  13. local function backAction()
  14. SceneIdx = SceneIdx - 1
  15. if SceneIdx < 0 then
  16. SceneIdx = SceneIdx + Transition_Table.MAX_LAYER
  17. end
  18. switchSceneTypeNo()
  19. return generateTranScene()
  20. end
  21. local function restartAction()
  22. return generateTranScene()
  23. end
  24. local function nextAction()
  25. SceneIdx = SceneIdx + 1
  26. SceneIdx = math.mod(SceneIdx, Transition_Table.MAX_LAYER)
  27. switchSceneTypeNo()
  28. return generateTranScene()
  29. end
  30. local function backCallback(sender)
  31. local scene = backAction()
  32. CCDirector:sharedDirector():replaceScene(scene)
  33. end
  34. local function restartCallback(sender)
  35. local scene = restartAction()
  36. CCDirector:sharedDirector():replaceScene(scene)
  37. end
  38. local function nextCallback(sender)
  39. local scene = nextAction()
  40. CCDirector:sharedDirector():replaceScene(scene)
  41. end
  42. -----------------------------
  43. -- TestLayer1
  44. -----------------------------
  45. local function createLayer1()
  46. local layer = CCLayer:create()
  47. local x, y = s.width, s.height
  48. local bg1 = CCSprite:create(s_back1)
  49. bg1:setPosition(CCPointMake(s.width / 2, s.height / 2))
  50. layer:addChild(bg1, -1)
  51. local titleLabel = CCLabelTTF:create(Transition_Name[SceneIdx], "Thonburi", 32)
  52. layer:addChild(titleLabel)
  53. titleLabel:setColor(ccc3(255,32,32))
  54. titleLabel:setPosition(x / 2, y - 100)
  55. local label = CCLabelTTF:create("SCENE 1", "Marker Felt", 38)
  56. label:setColor(ccc3(16,16,255))
  57. label:setPosition(x / 2, y / 2)
  58. layer:addChild(label)
  59. -- menu
  60. local item1 = CCMenuItemImage:create(s_pPathB1, s_pPathB2)
  61. local item2 = CCMenuItemImage:create(s_pPathR1, s_pPathR2)
  62. local item3 = CCMenuItemImage:create(s_pPathF1, s_pPathF2)
  63. item1:registerScriptTapHandler(backCallback)
  64. item2:registerScriptTapHandler(restartCallback)
  65. item3:registerScriptTapHandler(nextCallback)
  66. local menu = CCMenu:create()
  67. menu:addChild(item1)
  68. menu:addChild(item2)
  69. menu:addChild(item3)
  70. menu:setPosition(CCPointMake(0, 0))
  71. item1:setPosition(CCPointMake(s.width / 2 - item2:getContentSize().width * 2, item2:getContentSize().height / 2))
  72. item2:setPosition(CCPointMake(s.width / 2, item2:getContentSize().height / 2))
  73. item3:setPosition(CCPointMake(s.width / 2 + item2:getContentSize().width * 2, item2:getContentSize().height / 2))
  74. layer:addChild(menu, 1)
  75. return layer
  76. end
  77. -----------------------------
  78. -- TestLayer2
  79. -----------------------------
  80. local function createLayer2()
  81. local layer = CCLayer:create()
  82. local x, y = s.width, s.height
  83. local bg1 = CCSprite:create(s_back2)
  84. bg1:setPosition(CCPointMake(s.width / 2, s.height / 2))
  85. layer:addChild(bg1, -1)
  86. local titleLabel = CCLabelTTF:create(Transition_Name[SceneIdx], "Thonburi", 32 )
  87. layer:addChild(titleLabel)
  88. titleLabel:setColor(ccc3(255,32,32))
  89. titleLabel:setPosition(x / 2, y - 100)
  90. local label = CCLabelTTF:create("SCENE 2", "Marker Felt", 38)
  91. label:setColor(ccc3(16,16,255))
  92. label:setPosition(x / 2, y / 2)
  93. layer:addChild(label)
  94. -- menu
  95. local item1 = CCMenuItemImage:create(s_pPathB1, s_pPathB2)
  96. local item2 = CCMenuItemImage:create(s_pPathR1, s_pPathR2)
  97. local item3 = CCMenuItemImage:create(s_pPathF1, s_pPathF2)
  98. item1:registerScriptTapHandler(backCallback)
  99. item2:registerScriptTapHandler(restartCallback)
  100. item3:registerScriptTapHandler(nextCallback)
  101. local menu = CCMenu:create()
  102. menu:addChild(item1)
  103. menu:addChild(item2)
  104. menu:addChild(item3)
  105. menu:setPosition(CCPointMake(0, 0))
  106. item1:setPosition(CCPointMake(s.width / 2 - item2:getContentSize().width * 2, item2:getContentSize().height / 2))
  107. item2:setPosition(CCPointMake(s.width / 2, item2:getContentSize().height / 2))
  108. item3:setPosition(CCPointMake(s.width / 2 + item2:getContentSize().width * 2, item2:getContentSize().height / 2))
  109. layer:addChild(menu, 1)
  110. return layer
  111. end
  112. -----------------------------
  113. -- Create Transition Test
  114. -----------------------------
  115. local function createTransition(index, t, scene)
  116. CCDirector:sharedDirector():setDepthTest(false)
  117. if firstEnter == true then
  118. firstEnter = false
  119. return scene
  120. end
  121. if index == Transition_Table.CCTransitionJumpZoom then
  122. scene = CCTransitionJumpZoom:create(t, scene)
  123. elseif index == Transition_Table.CCTransitionProgressRadialCCW then
  124. scene = CCTransitionProgressRadialCCW:create(t, scene)
  125. elseif index == Transition_Table.CCTransitionProgressRadialCW then
  126. scene = CCTransitionProgressRadialCW:create(t, scene)
  127. elseif index == Transition_Table.CCTransitionProgressHorizontal then
  128. scene = CCTransitionProgressHorizontal:create(t, scene)
  129. elseif index == Transition_Table.CCTransitionProgressVertical then
  130. scene = CCTransitionProgressVertical:create(t, scene)
  131. elseif index == Transition_Table.CCTransitionProgressInOut then
  132. scene = CCTransitionProgressInOut:create(t, scene)
  133. elseif index == Transition_Table.CCTransitionProgressOutIn then
  134. scene = CCTransitionProgressOutIn:create(t, scene)
  135. elseif index == Transition_Table.CCTransitionCrossFade then
  136. scene = CCTransitionCrossFade:create(t, scene)
  137. elseif index == Transition_Table.TransitionPageForward then
  138. CCDirector:sharedDirector():setDepthTest(true)
  139. scene = CCTransitionPageTurn:create(t, scene, false)
  140. elseif index == Transition_Table.TransitionPageBackward then
  141. CCDirector:sharedDirector():setDepthTest(true)
  142. scene = CCTransitionPageTurn:create(t, scene, true)
  143. elseif index == Transition_Table.CCTransitionFadeTR then
  144. scene = CCTransitionFadeTR:create(t, scene)
  145. elseif index == Transition_Table.CCTransitionFadeBL then
  146. scene = CCTransitionFadeBL:create(t, scene)
  147. elseif index == Transition_Table.CCTransitionFadeUp then
  148. scene = CCTransitionFadeUp:create(t, scene)
  149. elseif index == Transition_Table.CCTransitionFadeDown then
  150. scene = CCTransitionFadeDown:create(t, scene)
  151. elseif index == Transition_Table.CCTransitionTurnOffTiles then
  152. scene = CCTransitionTurnOffTiles:create(t, scene)
  153. elseif index == Transition_Table.CCTransitionSplitRows then
  154. scene = CCTransitionSplitRows:create(t, scene)
  155. elseif index == Transition_Table.CCTransitionSplitCols then
  156. scene = CCTransitionSplitCols:create(t, scene)
  157. elseif index == Transition_Table.CCTransitionFade then
  158. scene = CCTransitionFade:create(t, scene)
  159. elseif index == Transition_Table.FadeWhiteTransition then
  160. scene = CCTransitionFade:create(t, scene, ccc3(255, 255, 255))
  161. elseif index == Transition_Table.FlipXLeftOver then
  162. scene = CCTransitionFlipX:create(t, scene, kOrientationLeftOver)
  163. elseif index == Transition_Table.FlipXRightOver then
  164. scene = CCTransitionFlipX:create(t, scene, kOrientationRightOver)
  165. elseif index == Transition_Table.FlipYUpOver then
  166. scene = CCTransitionFlipY:create(t, scene, kOrientationUpOver)
  167. elseif index == Transition_Table.FlipYDownOver then
  168. scene = CCTransitionFlipY:create(t, scene, kOrientationDownOver)
  169. elseif index == Transition_Table.FlipAngularLeftOver then
  170. scene = CCTransitionFlipAngular:create(t, scene, kOrientationLeftOver)
  171. elseif index == Transition_Table.FlipAngularRightOver then
  172. scene = CCTransitionFlipAngular:create(t, scene, kOrientationRightOver)
  173. elseif index == Transition_Table.ZoomFlipXLeftOver then
  174. scene = CCTransitionZoomFlipX:create(t, scene, kOrientationLeftOver)
  175. elseif index == Transition_Table.ZoomFlipXRightOver then
  176. scene = CCTransitionZoomFlipX:create(t, scene, kOrientationRightOver)
  177. elseif index == Transition_Table.ZoomFlipYUpOver then
  178. scene = CCTransitionZoomFlipY:create(t, scene, kOrientationUpOver)
  179. elseif index == Transition_Table.ZoomFlipYDownOver then
  180. scene = CCTransitionZoomFlipY:create(t, scene, kOrientationDownOver)
  181. elseif index == Transition_Table.ZoomFlipAngularLeftOver then
  182. scene = CCTransitionZoomFlipAngular:create(t, scene, kOrientationLeftOver)
  183. elseif index == Transition_Table.ZoomFlipAngularRightOver then
  184. scene = CCTransitionZoomFlipAngular:create(t, scene, kOrientationRightOver)
  185. elseif index == Transition_Table.CCTransitionShrinkGrow then
  186. scene = CCTransitionShrinkGrow:create(t, scene)
  187. elseif index == Transition_Table.CCTransitionRotoZoom then
  188. scene = CCTransitionRotoZoom:create(t, scene)
  189. elseif index == Transition_Table.CCTransitionMoveInL then
  190. scene = CCTransitionMoveInL:create(t, scene)
  191. elseif index == Transition_Table.CCTransitionMoveInR then
  192. scene = CCTransitionMoveInR:create(t, scene)
  193. elseif index == Transition_Table.CCTransitionMoveInT then
  194. scene = CCTransitionMoveInT:create(t, scene)
  195. elseif index == Transition_Table.CCTransitionMoveInB then
  196. scene = CCTransitionMoveInB:create(t, scene)
  197. elseif index == Transition_Table.CCTransitionSlideInL then
  198. scene = CCTransitionSlideInL:create(t, scene)
  199. elseif index == Transition_Table.CCTransitionSlideInR then
  200. scene = CCTransitionSlideInR:create(t, scene)
  201. elseif index == Transition_Table.CCTransitionSlideInT then
  202. scene = CCTransitionSlideInT:create(t, scene)
  203. elseif index == Transition_Table.CCTransitionSlideInB then
  204. scene = CCTransitionSlideInB:create(t, scene)
  205. end
  206. return scene
  207. end
  208. function generateTranScene()
  209. local scene = CCScene:create()
  210. local layer = nil
  211. if CurSceneNo == 1 then
  212. layer = createLayer1()
  213. elseif CurSceneNo == 2 then
  214. layer = createLayer2()
  215. end
  216. scene:addChild(layer)
  217. scene:addChild(CreateBackMenuItem())
  218. return createTransition(SceneIdx, TRANSITION_DURATION, scene)
  219. end
  220. function TransitionsTest()
  221. cclog("TransitionsTest")
  222. local scene = CCScene:create()
  223. SceneIdx = -1
  224. CurSceneNo = 2
  225. firstEnter = true
  226. return nextAction()
  227. end