ccb 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +20 -0
  3. data/README.md +31 -0
  4. data/bin/ccb +4 -0
  5. data/lib/ccb/builder/project_builder.rb +14 -0
  6. data/lib/ccb/builder/scene_builder.rb +9 -0
  7. data/lib/ccb/builder/templates/project/GameConfig.js.tt +21 -0
  8. data/lib/ccb/builder/templates/project/_cocos-project.json +4 -0
  9. data/lib/ccb/builder/templates/project/folder/CMakeLists.txt +295 -0
  10. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/Base64Images.js +32 -0
  11. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/CCBoot.js +2271 -0
  12. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/CCDebugger.js +336 -0
  13. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCAction.js +694 -0
  14. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionCamera.js +293 -0
  15. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionCatmullRom.js +605 -0
  16. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionEase.js +3681 -0
  17. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionInstant.js +757 -0
  18. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionInterval.js +3554 -0
  19. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionTween.js +166 -0
  20. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionGrid.js +372 -0
  21. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionGrid3D.js +1257 -0
  22. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionPageTurn3D.js +113 -0
  23. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionTiledGrid.js +1289 -0
  24. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/audio/CCAudio.js +1024 -0
  25. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNode.js +224 -0
  26. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNodeCanvasRenderCmd.js +227 -0
  27. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNodeWebGLRenderCmd.js +226 -0
  28. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/ZipUtils.js +82 -0
  29. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/base64.js +95 -0
  30. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/gzip.js +731 -0
  31. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/zlib.min.js +55 -0
  32. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCActionManager.js +378 -0
  33. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCCamera.js +290 -0
  34. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCConfiguration.js +294 -0
  35. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDirector.js +1019 -0
  36. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDirectorWebGL.js +329 -0
  37. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDrawingPrimitivesCanvas.js +438 -0
  38. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDrawingPrimitivesWebGL.js +464 -0
  39. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCScheduler.js +744 -0
  40. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/BaseNodesPropertyDefine.js +127 -0
  41. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNode.js +294 -0
  42. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNodeCanvasRenderCmd.js +138 -0
  43. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNodeWebGLRenderCmd.js +145 -0
  44. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNode.js +2386 -0
  45. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNodeCanvasRenderCmd.js +504 -0
  46. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNodeWebGLRenderCmd.js +254 -0
  47. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/cocoa/CCAffineTransform.js +259 -0
  48. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/cocoa/CCGeometry.js +327 -0
  49. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEvent.js +449 -0
  50. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventExtension.js +126 -0
  51. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventListener.js +519 -0
  52. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventManager.js +1025 -0
  53. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCTouch.js +175 -0
  54. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTF.js +829 -0
  55. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTFCanvasRenderCmd.js +420 -0
  56. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTFWebGLRenderCmd.js +101 -0
  57. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/LabelTTFPropertyDefine.js +88 -0
  58. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayer.js +642 -0
  59. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayerCanvasRenderCmd.js +434 -0
  60. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayerWebGLRenderCmd.js +248 -0
  61. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCClass.js +333 -0
  62. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCCommon.js +303 -0
  63. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCConfig.js +303 -0
  64. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCEGLView.js +1245 -0
  65. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCInputExtension.js +135 -0
  66. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCInputManager.js +616 -0
  67. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCLoaders.js +142 -0
  68. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCMacro.js +830 -0
  69. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCSAXParser.js +160 -0
  70. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCScreen.js +155 -0
  71. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypes.js +374 -0
  72. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypesPropertyDefine.js +165 -0
  73. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypesWebGL.js +689 -0
  74. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCVisibleRect.js +100 -0
  75. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/miniFramework.js +264 -0
  76. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/renderer/RendererCanvas.js +274 -0
  77. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/renderer/RendererWebGL.js +137 -0
  78. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/scenes/CCLoaderScene.js +149 -0
  79. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/scenes/CCScene.js +62 -0
  80. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCAnimation.js +477 -0
  81. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCAnimationCache.js +213 -0
  82. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCBakeSprite.js +71 -0
  83. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSprite.js +1014 -0
  84. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNode.js +676 -0
  85. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNodeCanvasRenderCmd.js +101 -0
  86. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNodeWebGLRenderCmd.js +243 -0
  87. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteCanvasRenderCmd.js +518 -0
  88. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteFrame.js +420 -0
  89. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteFrameCache.js +341 -0
  90. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteWebGLRenderCmd.js +493 -0
  91. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/SpritesPropertyDefine.js +67 -0
  92. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/CCPointExtension.js +515 -0
  93. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/CCVertex.js +170 -0
  94. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/TransformUtils.js +62 -0
  95. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTexture2D.js +455 -0
  96. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTextureAtlas.js +653 -0
  97. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTextureCache.js +371 -0
  98. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/TexturesPropertyDefine.js +221 -0
  99. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/TexturesWebGL.js +899 -0
  100. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/utils/BinaryLoader.js +151 -0
  101. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/effects/CCGrabber.js +110 -0
  102. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/effects/CCGrid.js +737 -0
  103. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/aabb.js +68 -0
  104. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/gl/mat4stack.js +59 -0
  105. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/gl/matrix.js +169 -0
  106. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/mat3.js +329 -0
  107. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/mat4.js +810 -0
  108. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/plane.js +184 -0
  109. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/quaternion.js +497 -0
  110. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/ray2.js +163 -0
  111. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/utility.js +76 -0
  112. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec2.js +107 -0
  113. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec3.js +205 -0
  114. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec4.js +158 -0
  115. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlas.js +239 -0
  116. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlasCanvasRenderCmd.js +95 -0
  117. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlasWebGLRenderCmd.js +132 -0
  118. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFont.js +958 -0
  119. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFontCanvasRenderCmd.js +142 -0
  120. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFontWebGLRenderCmd.js +87 -0
  121. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/menus/CCMenu.js +600 -0
  122. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/menus/CCMenuItem.js +1422 -0
  123. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/motion-streak/CCMotionStreak.js +517 -0
  124. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/motion-streak/CCMotionStreakWebGLRenderCmd.js +66 -0
  125. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/node-grid/CCNodeGrid.js +129 -0
  126. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/node-grid/CCNodeGridWebGLRenderCmd.js +98 -0
  127. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/parallax/CCParallaxNode.js +252 -0
  128. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/parallax/CCParallaxNodeRenderCmd.js +69 -0
  129. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCPNGReader.js +330 -0
  130. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNode.js +527 -0
  131. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNodeCanvasRenderCmd.js +38 -0
  132. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNodeWebGLRenderCmd.js +74 -0
  133. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleExamples.js +1006 -0
  134. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystem.js +2294 -0
  135. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystemCanvasRenderCmd.js +217 -0
  136. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystemWebGLRenderCmd.js +402 -0
  137. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCTIFFReader.js +692 -0
  138. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNode.js +212 -0
  139. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNodeCanvasRenderCmd.js +52 -0
  140. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNodeWebGLRenderCmd.js +53 -0
  141. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSprite.js +447 -0
  142. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSpriteCanvasRenderCmd.js +93 -0
  143. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSpriteWebGLRenderCmd.js +87 -0
  144. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCActionProgressTimer.js +227 -0
  145. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimer.js +345 -0
  146. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimerCanvasRenderCmd.js +270 -0
  147. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimerWebGLRenderCmd.js +486 -0
  148. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTexture.js +395 -0
  149. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTextureCanvasRenderCmd.js +105 -0
  150. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTextureWebGLRenderCmd.js +367 -0
  151. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCGLProgram.js +767 -0
  152. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCGLStateCache.js +340 -0
  153. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCShaderCache.js +301 -0
  154. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCShaders.js +280 -0
  155. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNode.js +940 -0
  156. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNodeCanvasRenderCmd.js +129 -0
  157. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNodeWebGLRenderCmd.js +41 -0
  158. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/text-input/CCIMEDispatcher.js +526 -0
  159. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/text-input/CCTextFieldTTF.js +472 -0
  160. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTGAlib.js +437 -0
  161. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayer.js +914 -0
  162. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayerCanvasRenderCmd.js +232 -0
  163. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayerWebGLRenderCmd.js +67 -0
  164. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXObjectGroup.js +146 -0
  165. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXTiledMap.js +479 -0
  166. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXXMLParser.js +950 -0
  167. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransition.js +1971 -0
  168. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransitionPageTurn.js +152 -0
  169. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransitionProgress.js +458 -0
  170. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBAnimationManager.js +770 -0
  171. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBKeyframe.js +60 -0
  172. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBReader.js +1129 -0
  173. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBReaderUtil.js +61 -0
  174. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBRelativePositioning.js +90 -0
  175. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBSequence.js +114 -0
  176. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBValue.js +81 -0
  177. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCControlLoader.js +318 -0
  178. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCNodeLoader.js +905 -0
  179. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCNodeLoaderLibrary.js +101 -0
  180. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCSpriteLoader.js +544 -0
  181. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccpool/CCPool.js +146 -0
  182. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNode.js +305 -0
  183. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNodeCanvasRenderCmd.js +246 -0
  184. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNodeWebGLRenderCmd.js +159 -0
  185. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9Sprite.js +1105 -0
  186. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9SpriteCanvasRenderCmd.js +142 -0
  187. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9SpriteWebGLRenderCmd.js +129 -0
  188. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIWidget.js +2059 -0
  189. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIWidgetRenderCmd.js +100 -0
  190. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIHBox.js +80 -0
  191. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayout.js +1558 -0
  192. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutCanvasRenderCmd.js +179 -0
  193. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutComponent.js +585 -0
  194. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutManager.js +457 -0
  195. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutParameter.js +576 -0
  196. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutWebGLRenderCmd.js +240 -0
  197. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIRelativeBox.js +79 -0
  198. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIVBox.js +79 -0
  199. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/system/CocosGUI.js +62 -0
  200. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/system/UIHelper.js +164 -0
  201. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIButton.js +987 -0
  202. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UICheckBox.js +737 -0
  203. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIImageView.js +337 -0
  204. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UILoadingBar.js +432 -0
  205. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIRichText.js +579 -0
  206. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UISlider.js +762 -0
  207. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIText.js +512 -0
  208. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextAtlas.js +229 -0
  209. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextBMFont.js +216 -0
  210. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextField.js +915 -0
  211. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIListView.js +602 -0
  212. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIPageView.js +657 -0
  213. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIScrollView.js +1884 -0
  214. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/CocoStudio.js +68 -0
  215. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionFrame.js +528 -0
  216. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionManager.js +112 -0
  217. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionNode.js +417 -0
  218. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionObject.js +263 -0
  219. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmature.js +579 -0
  220. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmatureCanvasRenderCmd.js +190 -0
  221. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmatureWebGLRenderCmd.js +167 -0
  222. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCBone.js +711 -0
  223. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCArmatureAnimation.js +669 -0
  224. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCProcessBase.js +365 -0
  225. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCTween.js +448 -0
  226. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/datas/CCDatas.js +807 -0
  227. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDecorativeDisplay.js +118 -0
  228. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDisplayFactory.js +220 -0
  229. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDisplayManager.js +465 -0
  230. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkin.js +215 -0
  231. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkinCanvasRenderCmd.js +58 -0
  232. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkinWebGLRenderCmd.js +146 -0
  233. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/physics/CCColliderDetector.js +397 -0
  234. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCArmatureDataManager.js +325 -0
  235. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCArmatureDefine.js +45 -0
  236. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCDataReaderHelper.js +1223 -0
  237. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCSpriteFrameCacheHelper.js +68 -0
  238. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCTransformHelp.js +183 -0
  239. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCTweenFunction.js +501 -0
  240. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCUtilMath.js +69 -0
  241. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComAttribute.js +210 -0
  242. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComAudio.js +285 -0
  243. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComController.js +76 -0
  244. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComRender.js +91 -0
  245. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComponent.js +136 -0
  246. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComponentContainer.js +159 -0
  247. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/load.js +221 -0
  248. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/action-1.x.js +238 -0
  249. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/action-2.x.js +266 -0
  250. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/compatible.js +251 -0
  251. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/scene-1.x.js +262 -0
  252. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/timelineParser-1.x.js +292 -0
  253. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/timelineParser-2.x.js +1288 -0
  254. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/uiParser-1.x.js +680 -0
  255. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/ActionTimeline.js +448 -0
  256. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/Frame.js +1268 -0
  257. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/Timeline.js +321 -0
  258. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/ObjectFactory.js +99 -0
  259. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerBase.js +49 -0
  260. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerMng.js +301 -0
  261. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerObj.js +263 -0
  262. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/editbox/CCEditBox.js +716 -0
  263. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/editbox/CCdomNode.js +657 -0
  264. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControl.js +381 -0
  265. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlButton.js +688 -0
  266. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlColourPicker.js +187 -0
  267. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlHuePicker.js +218 -0
  268. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlPotentiometer.js +300 -0
  269. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSaturationBrightnessPicker.js +257 -0
  270. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSlider.js +308 -0
  271. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlStepper.js +390 -0
  272. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSwitch.js +425 -0
  273. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlUtils.js +177 -0
  274. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCInvocation.js +65 -0
  275. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCMenuPassive.js +415 -0
  276. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9Sprite.js +1099 -0
  277. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9SpriteCanvasRenderCmd.js +142 -0
  278. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9SpriteWebGLRenderCmd.js +129 -0
  279. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollView.js +827 -0
  280. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollViewCanvasRenderCmd.js +79 -0
  281. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollViewWebGLRenderCmd.js +108 -0
  282. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCSorting.js +239 -0
  283. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCTableView.js +718 -0
  284. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeleton.js +357 -0
  285. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonAnimation.js +340 -0
  286. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonCanvasRenderCmd.js +165 -0
  287. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonWebGLRenderCmd.js +165 -0
  288. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/Spine.js +2239 -0
  289. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/box2d/box2d.js +10882 -0
  290. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/chipmunk/chipmunk.js +6196 -0
  291. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/Plugin.js +254 -0
  292. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/platform/facebook.js +557 -0
  293. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/platform/facebook_sdk.js +151 -0
  294. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/socketio/socket.io.min.js +2 -0
  295. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/jsb_apis.js +618 -0
  296. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/moduleConfig.json +453 -0
  297. data/lib/ccb/builder/templates/project/folder/project.json +42 -0
  298. data/lib/ccb/builder/templates/project/folder/res/CloseNormal.png +0 -0
  299. data/lib/ccb/builder/templates/project/folder/res/CloseSelected.png +0 -0
  300. data/lib/ccb/builder/templates/project/folder/res/HelloWorld.png +0 -0
  301. data/lib/ccb/builder/templates/project/folder/res/favicon.ico +0 -0
  302. data/lib/ccb/builder/templates/project/folder/res/gameOver/cocos2d-html5.png +0 -0
  303. data/lib/ccb/builder/templates/project/folder/res/gameOver/gameOver.png +0 -0
  304. data/lib/ccb/builder/templates/project/folder/res/mainMenu/bg.png +0 -0
  305. data/lib/ccb/builder/templates/project/folder/res/mainMenu/menu.png +0 -0
  306. data/lib/ccb/builder/templates/project/folder/res/setting/menuTitle.png +0 -0
  307. data/lib/ccb/builder/templates/project/folder/res/shared/arial-14.fnt +182 -0
  308. data/lib/ccb/builder/templates/project/folder/res/shared/arial-14.png +0 -0
  309. data/lib/ccb/builder/templates/project/folder/res/sound/music/bgMusic.mp3 +0 -0
  310. data/lib/ccb/builder/templates/project/folder/src/about/layer/ABBackgroundLayer.js +23 -0
  311. data/lib/ccb/builder/templates/project/folder/src/about/layer/ABTouchLayer.js +51 -0
  312. data/lib/ccb/builder/templates/project/folder/src/about/scene/About.js +36 -0
  313. data/lib/ccb/builder/templates/project/folder/src/config/Level.js +7 -0
  314. data/lib/ccb/builder/templates/project/folder/src/gameOver/layer/GOBackgroundLayer.js +50 -0
  315. data/lib/ccb/builder/templates/project/folder/src/gameOver/layer/GOTouchLayer.js +51 -0
  316. data/lib/ccb/builder/templates/project/folder/src/gameOver/scene/GameOver.js +38 -0
  317. data/lib/ccb/builder/templates/project/folder/src/gamePlay/classes/LevelManager.js +21 -0
  318. data/lib/ccb/builder/templates/project/folder/src/gamePlay/layer/GPBackgroundLayer.js +25 -0
  319. data/lib/ccb/builder/templates/project/folder/src/gamePlay/layer/GPTouchLayer.js +51 -0
  320. data/lib/ccb/builder/templates/project/folder/src/gamePlay/scene/GamePlay.js +44 -0
  321. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMBackgroundLayer.js +43 -0
  322. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMMainMenuLayer.js +38 -0
  323. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMTouchLayer.js +96 -0
  324. data/lib/ccb/builder/templates/project/folder/src/mainMenu/scene/MainMenu.js +45 -0
  325. data/lib/ccb/builder/templates/project/folder/src/resource.js +29 -0
  326. data/lib/ccb/builder/templates/project/folder/src/setting/layer/STBackgroundLayer.js +25 -0
  327. data/lib/ccb/builder/templates/project/folder/src/setting/layer/STTouchLayer.js +89 -0
  328. data/lib/ccb/builder/templates/project/folder/src/setting/scene/Setting.js +40 -0
  329. data/lib/ccb/builder/templates/project/index.html.tt +27 -0
  330. data/lib/ccb/builder/templates/project/main.js.tt +62 -0
  331. data/lib/ccb/cli.rb +32 -0
  332. data/lib/ccb/ext/method_hooker.rb +68 -0
  333. data/lib/ccb/ext/string_extention.rb +7 -0
  334. data/lib/ccb.rb +1 -0
  335. metadata +449 -0
@@ -0,0 +1,1014 @@
1
+ /****************************************************************************
2
+ Copyright (c) 2008-2010 Ricardo Quesada
3
+ Copyright (c) 2011-2012 cocos2d-x.org
4
+ Copyright (c) 2013-2014 Chukong Technologies Inc.
5
+
6
+ http://www.cocos2d-x.org
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ THE SOFTWARE.
25
+ ****************************************************************************/
26
+
27
+ /**
28
+ * <p>cc.Sprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) ) <br/>
29
+ *
30
+ * cc.Sprite can be created with an image, or with a sub-rectangle of an image. <br/>
31
+ *
32
+ * If the parent or any of its ancestors is a cc.SpriteBatchNode then the following features/limitations are valid <br/>
33
+ * - Features when the parent is a cc.BatchNode: <br/>
34
+ * - MUCH faster rendering, specially if the cc.SpriteBatchNode has many children. All the children will be drawn in a single batch. <br/>
35
+ *
36
+ * - Limitations <br/>
37
+ * - Camera is not supported yet (eg: CCOrbitCamera action doesn't work) <br/>
38
+ * - GridBase actions are not supported (eg: CCLens, CCRipple, CCTwirl) <br/>
39
+ * - The Alias/Antialias property belongs to CCSpriteBatchNode, so you can't individually set the aliased property. <br/>
40
+ * - The Blending function property belongs to CCSpriteBatchNode, so you can't individually set the blending function property. <br/>
41
+ * - Parallax scroller is not supported, but can be simulated with a "proxy" sprite. <br/>
42
+ *
43
+ * If the parent is an standard cc.Node, then cc.Sprite behaves like any other cc.Node: <br/>
44
+ * - It supports blending functions <br/>
45
+ * - It supports aliasing / antialiasing <br/>
46
+ * - But the rendering will be slower: 1 draw per children. <br/>
47
+ *
48
+ * The default anchorPoint in cc.Sprite is (0.5, 0.5). </p>
49
+ * @class
50
+ * @extends cc.Node
51
+ *
52
+ * @param {String|cc.SpriteFrame|HTMLImageElement|cc.Texture2D} fileName The string which indicates a path to image file, e.g., "scene1/monster.png".
53
+ * @param {cc.Rect} rect Only the contents inside rect of pszFileName's texture will be applied for this sprite.
54
+ * @param {Boolean} [rotated] Whether or not the texture rectangle is rotated.
55
+ * @example
56
+ *
57
+ * 1.Create a sprite with image path and rect
58
+ * var sprite1 = new cc.Sprite("res/HelloHTML5World.png");
59
+ * var sprite2 = new cc.Sprite("res/HelloHTML5World.png",cc.rect(0,0,480,320));
60
+ *
61
+ * 2.Create a sprite with a sprite frame name. Must add "#" before frame name.
62
+ * var sprite = new cc.Sprite('#grossini_dance_01.png');
63
+ *
64
+ * 3.Create a sprite with a sprite frame
65
+ * var spriteFrame = cc.spriteFrameCache.getSpriteFrame("grossini_dance_01.png");
66
+ * var sprite = new cc.Sprite(spriteFrame);
67
+ *
68
+ * 4.Create a sprite with an existing texture contained in a CCTexture2D object
69
+ * After creation, the rect will be the size of the texture, and the offset will be (0,0).
70
+ * var texture = cc.textureCache.addImage("HelloHTML5World.png");
71
+ * var sprite1 = new cc.Sprite(texture);
72
+ * var sprite2 = new cc.Sprite(texture, cc.rect(0,0,480,320));
73
+ *
74
+ * @property {Boolean} dirty - Indicates whether the sprite needs to be updated.
75
+ * @property {Boolean} flippedX - Indicates whether or not the sprite is flipped on x axis.
76
+ * @property {Boolean} flippedY - Indicates whether or not the sprite is flipped on y axis.
77
+ * @property {Number} offsetX - <@readonly> The offset position on x axis of the sprite in texture. Calculated automatically by editors like Zwoptex.
78
+ * @property {Number} offsetY - <@readonly> The offset position on x axis of the sprite in texture. Calculated automatically by editors like Zwoptex.
79
+ * @property {Number} atlasIndex - The index used on the TextureAtlas.
80
+ * @property {cc.Texture2D} texture - Texture used to render the sprite.
81
+ * @property {Boolean} textureRectRotated - <@readonly> Indicate whether the texture rectangle is rotated.
82
+ * @property {cc.TextureAtlas} textureAtlas - The weak reference of the cc.TextureAtlas when the sprite is rendered using via cc.SpriteBatchNode.
83
+ * @property {cc.SpriteBatchNode} batchNode - The batch node object if this sprite is rendered by cc.SpriteBatchNode.
84
+ * @property {cc.V3F_C4B_T2F_Quad} quad - <@readonly> The quad (tex coords, vertex coords and color) information.
85
+ */
86
+ cc.Sprite = cc.Node.extend(/** @lends cc.Sprite# */{
87
+ dirty:false,
88
+ atlasIndex:0,
89
+ textureAtlas:null,
90
+
91
+ _batchNode:null,
92
+ _recursiveDirty:null, //Whether all of the sprite's children needs to be updated
93
+ _hasChildren:null, //Whether the sprite contains children
94
+ _shouldBeHidden:false, //should not be drawn because one of the ancestors is not visible
95
+ _transformToBatch:null,
96
+
97
+ //
98
+ // Data used when the sprite is self-rendered
99
+ //
100
+ _blendFunc:null, //It's required for CCTextureProtocol inheritance
101
+ _texture:null, //cc.Texture2D object that is used to render the sprite
102
+
103
+ //
104
+ // Shared data
105
+ //
106
+ // texture
107
+ _rect:null, //Rectangle of cc.Texture2D
108
+ _rectRotated:false, //Whether the texture is rotated
109
+
110
+ // Offset Position (used by Zwoptex)
111
+ _offsetPosition:null, // absolute
112
+ _unflippedOffsetPositionFromCenter:null,
113
+
114
+ _opacityModifyRGB:false,
115
+
116
+ // image is flipped
117
+ _flippedX:false, //Whether the sprite is flipped horizontally or not.
118
+ _flippedY:false, //Whether the sprite is flipped vertically or not.
119
+
120
+ _textureLoaded:false,
121
+ _className:"Sprite",
122
+
123
+ ctor: function (fileName, rect, rotated) {
124
+ var self = this;
125
+ cc.Node.prototype.ctor.call(self);
126
+ self._shouldBeHidden = false;
127
+ self._offsetPosition = cc.p(0, 0);
128
+ self._unflippedOffsetPositionFromCenter = cc.p(0, 0);
129
+ self._blendFunc = {src: cc.BLEND_SRC, dst: cc.BLEND_DST};
130
+ self._rect = cc.rect(0, 0, 0, 0);
131
+
132
+ self._softInit(fileName, rect, rotated);
133
+ },
134
+
135
+ /**
136
+ * Returns whether the texture have been loaded
137
+ * @returns {boolean}
138
+ */
139
+ textureLoaded:function(){
140
+ return this._textureLoaded;
141
+ },
142
+
143
+ /**
144
+ * Add a event listener for texture loaded event.
145
+ * @param {Function} callback
146
+ * @param {Object} target
147
+ * @deprecated since 3.1, please use addEventListener instead
148
+ */
149
+ addLoadedEventListener:function(callback, target){
150
+ this.addEventListener("load", callback, target);
151
+ },
152
+
153
+ /**
154
+ * Returns whether or not the Sprite needs to be updated in the Atlas
155
+ * @return {Boolean} True if the sprite needs to be updated in the Atlas, false otherwise.
156
+ */
157
+ isDirty:function () {
158
+ return this.dirty;
159
+ },
160
+
161
+ /**
162
+ * Makes the sprite to be updated in the Atlas.
163
+ * @param {Boolean} bDirty
164
+ */
165
+ setDirty:function (bDirty) {
166
+ this.dirty = bDirty;
167
+ },
168
+
169
+ /**
170
+ * Returns whether or not the texture rectangle is rotated.
171
+ * @return {Boolean}
172
+ */
173
+ isTextureRectRotated:function () {
174
+ return this._rectRotated;
175
+ },
176
+
177
+ /**
178
+ * Returns the index used on the TextureAtlas.
179
+ * @return {Number}
180
+ */
181
+ getAtlasIndex:function () {
182
+ return this.atlasIndex;
183
+ },
184
+
185
+ /**
186
+ * Sets the index used on the TextureAtlas.
187
+ * @warning Don't modify this value unless you know what you are doing
188
+ * @param {Number} atlasIndex
189
+ */
190
+ setAtlasIndex:function (atlasIndex) {
191
+ this.atlasIndex = atlasIndex;
192
+ },
193
+
194
+ /**
195
+ * Returns the rect of the cc.Sprite in points
196
+ * @return {cc.Rect}
197
+ */
198
+ getTextureRect:function () {
199
+ return cc.rect(this._rect);
200
+ },
201
+
202
+ /**
203
+ * Returns the weak reference of the cc.TextureAtlas when the sprite is rendered using via cc.SpriteBatchNode
204
+ * @return {cc.TextureAtlas}
205
+ */
206
+ getTextureAtlas:function () {
207
+ return this.textureAtlas;
208
+ },
209
+
210
+ /**
211
+ * Sets the weak reference of the cc.TextureAtlas when the sprite is rendered using via cc.SpriteBatchNode
212
+ * @param {cc.TextureAtlas} textureAtlas
213
+ */
214
+ setTextureAtlas:function (textureAtlas) {
215
+ this.textureAtlas = textureAtlas;
216
+ },
217
+
218
+ /**
219
+ * Returns the offset position of the sprite. Calculated automatically by editors like Zwoptex.
220
+ * @return {cc.Point}
221
+ */
222
+ getOffsetPosition:function () {
223
+ return cc.p(this._offsetPosition);
224
+ },
225
+
226
+ _getOffsetX: function () {
227
+ return this._offsetPosition.x;
228
+ },
229
+ _getOffsetY: function () {
230
+ return this._offsetPosition.y;
231
+ },
232
+
233
+ /**
234
+ * Returns the blend function
235
+ * @return {cc.BlendFunc}
236
+ */
237
+ getBlendFunc:function () {
238
+ return this._blendFunc;
239
+ },
240
+
241
+ /**
242
+ * Initializes a sprite with a SpriteFrame. The texture and rect in SpriteFrame will be applied on this sprite.<br/>
243
+ * Please pass parameters to the constructor to initialize the sprite, do not call this function yourself,
244
+ * @param {cc.SpriteFrame} spriteFrame A CCSpriteFrame object. It should includes a valid texture and a rect
245
+ * @return {Boolean} true if the sprite is initialized properly, false otherwise.
246
+ */
247
+ initWithSpriteFrame:function (spriteFrame) {
248
+ cc.assert(spriteFrame, cc._LogInfos.Sprite_initWithSpriteFrame);
249
+
250
+ if(!spriteFrame.textureLoaded()){
251
+ //add event listener
252
+ this._textureLoaded = false;
253
+ spriteFrame.addEventListener("load", this._renderCmd._spriteFrameLoadedCallback, this);
254
+ }
255
+
256
+ //TODO
257
+ var rotated = cc._renderType === cc._RENDER_TYPE_CANVAS ? false : spriteFrame._rotated;
258
+ var ret = this.initWithTexture(spriteFrame.getTexture(), spriteFrame.getRect(), rotated);
259
+ this.setSpriteFrame(spriteFrame);
260
+
261
+ return ret;
262
+ },
263
+
264
+ /**
265
+ * Initializes a sprite with a sprite frame name. <br/>
266
+ * A cc.SpriteFrame will be fetched from the cc.SpriteFrameCache by name. <br/>
267
+ * If the cc.SpriteFrame doesn't exist it will raise an exception. <br/>
268
+ * Please pass parameters to the constructor to initialize the sprite, do not call this function yourself.
269
+ * @param {String} spriteFrameName A key string that can fected a valid cc.SpriteFrame from cc.SpriteFrameCache
270
+ * @return {Boolean} true if the sprite is initialized properly, false otherwise.
271
+ * @example
272
+ * var sprite = new cc.Sprite();
273
+ * sprite.initWithSpriteFrameName("grossini_dance_01.png");
274
+ */
275
+ initWithSpriteFrameName:function (spriteFrameName) {
276
+ cc.assert(spriteFrameName, cc._LogInfos.Sprite_initWithSpriteFrameName);
277
+ var frame = cc.spriteFrameCache.getSpriteFrame(spriteFrameName);
278
+ cc.assert(frame, spriteFrameName + cc._LogInfos.Sprite_initWithSpriteFrameName1);
279
+ return this.initWithSpriteFrame(frame);
280
+ },
281
+
282
+ /**
283
+ * Tell the sprite to use batch node render.
284
+ * @param {cc.SpriteBatchNode} batchNode
285
+ */
286
+ useBatchNode:function (batchNode) {
287
+ this.textureAtlas = batchNode.getTextureAtlas(); // weak ref
288
+ this._batchNode = batchNode;
289
+ },
290
+
291
+ /**
292
+ * <p>
293
+ * set the vertex rect.<br/>
294
+ * It will be called internally by setTextureRect. <br/>
295
+ * Useful if you want to create 2x images from SD images in Retina Display. <br/>
296
+ * Do not call it manually. Use setTextureRect instead. <br/>
297
+ * (override this method to generate "double scale" sprites)
298
+ * </p>
299
+ * @param {cc.Rect} rect
300
+ */
301
+ setVertexRect:function (rect) {
302
+ var locRect = this._rect;
303
+ locRect.x = rect.x;
304
+ locRect.y = rect.y;
305
+ locRect.width = rect.width;
306
+ locRect.height = rect.height;
307
+ },
308
+
309
+ /**
310
+ * Sort all children of this sprite node.
311
+ * @override
312
+ */
313
+ sortAllChildren:function () {
314
+ if (this._reorderChildDirty) {
315
+ var _children = this._children;
316
+
317
+ // insertion sort
318
+ var len = _children.length, i, j, tmp;
319
+ for(i=1; i<len; i++){
320
+ tmp = _children[i];
321
+ j = i - 1;
322
+
323
+ //continue moving element downwards while zOrder is smaller or when zOrder is the same but mutatedIndex is smaller
324
+ while(j >= 0){
325
+ if(tmp._localZOrder < _children[j]._localZOrder){
326
+ _children[j+1] = _children[j];
327
+ }else if(tmp._localZOrder === _children[j]._localZOrder && tmp.arrivalOrder < _children[j].arrivalOrder){
328
+ _children[j+1] = _children[j];
329
+ }else{
330
+ break;
331
+ }
332
+ j--;
333
+ }
334
+ _children[j+1] = tmp;
335
+ }
336
+
337
+ if (this._batchNode) {
338
+ this._arrayMakeObjectsPerformSelector(_children, cc.Node._stateCallbackType.sortAllChildren);
339
+ }
340
+
341
+ //don't need to check children recursively, that's done in visit of each child
342
+ this._reorderChildDirty = false;
343
+ }
344
+
345
+ },
346
+
347
+ /**
348
+ * Reorders a child according to a new z value. (override cc.Node )
349
+ * @param {cc.Node} child
350
+ * @param {Number} zOrder
351
+ * @override
352
+ */
353
+ reorderChild:function (child, zOrder) {
354
+ cc.assert(child, cc._LogInfos.Sprite_reorderChild_2);
355
+ if(this._children.indexOf(child) === -1){
356
+ cc.log(cc._LogInfos.Sprite_reorderChild);
357
+ return;
358
+ }
359
+
360
+ if (zOrder === child.zIndex)
361
+ return;
362
+
363
+ if (this._batchNode && !this._reorderChildDirty) {
364
+ this._setReorderChildDirtyRecursively();
365
+ this._batchNode.reorderBatch(true);
366
+ }
367
+ cc.Node.prototype.reorderChild.call(this, child, zOrder);
368
+ },
369
+
370
+ /**
371
+ * Removes a child from the sprite.
372
+ * @param child
373
+ * @param cleanup whether or not cleanup all running actions
374
+ * @override
375
+ */
376
+ removeChild:function (child, cleanup) {
377
+ if (this._batchNode)
378
+ this._batchNode.removeSpriteFromAtlas(child);
379
+ cc.Node.prototype.removeChild.call(this, child, cleanup);
380
+ },
381
+
382
+ /**
383
+ * Sets whether the sprite is visible or not.
384
+ * @param {Boolean} visible
385
+ * @override
386
+ */
387
+ setVisible:function (visible) {
388
+ cc.Node.prototype.setVisible.call(this, visible);
389
+ this._renderCmd.setDirtyRecursively(true);
390
+ },
391
+
392
+ /**
393
+ * Removes all children from the container.
394
+ * @param cleanup whether or not cleanup all running actions
395
+ * @override
396
+ */
397
+ removeAllChildren:function (cleanup) {
398
+ var locChildren = this._children, locBatchNode = this._batchNode;
399
+ if (locBatchNode && locChildren != null) {
400
+ for (var i = 0, len = locChildren.length; i < len; i++)
401
+ locBatchNode.removeSpriteFromAtlas(locChildren[i]);
402
+ }
403
+
404
+ cc.Node.prototype.removeAllChildren.call(this, cleanup);
405
+ this._hasChildren = false;
406
+ },
407
+
408
+ //
409
+ // cc.Node property overloads
410
+ //
411
+
412
+ /**
413
+ * Sets whether ignore anchor point for positioning
414
+ * @param {Boolean} relative
415
+ * @override
416
+ */
417
+ ignoreAnchorPointForPosition:function (relative) {
418
+ if(this._batchNode){
419
+ cc.log(cc._LogInfos.Sprite_ignoreAnchorPointForPosition);
420
+ return;
421
+ }
422
+ cc.Node.prototype.ignoreAnchorPointForPosition.call(this, relative);
423
+ },
424
+
425
+ /**
426
+ * Sets whether the sprite should be flipped horizontally or not.
427
+ * @param {Boolean} flippedX true if the sprite should be flipped horizontally, false otherwise.
428
+ */
429
+ setFlippedX:function (flippedX) {
430
+ if (this._flippedX != flippedX) {
431
+ this._flippedX = flippedX;
432
+ this.setTextureRect(this._rect, this._rectRotated, this._contentSize);
433
+ this.setNodeDirty(true);
434
+ }
435
+ },
436
+
437
+ /**
438
+ * Sets whether the sprite should be flipped vertically or not.
439
+ * @param {Boolean} flippedY true if the sprite should be flipped vertically, false otherwise.
440
+ */
441
+ setFlippedY:function (flippedY) {
442
+ if (this._flippedY != flippedY) {
443
+ this._flippedY = flippedY;
444
+ this.setTextureRect(this._rect, this._rectRotated, this._contentSize);
445
+ this.setNodeDirty(true);
446
+ }
447
+ },
448
+
449
+ /**
450
+ * <p>
451
+ * Returns the flag which indicates whether the sprite is flipped horizontally or not. <br/>
452
+ * <br/>
453
+ * It only flips the texture of the sprite, and not the texture of the sprite's children. <br/>
454
+ * Also, flipping the texture doesn't alter the anchorPoint. <br/>
455
+ * If you want to flip the anchorPoint too, and/or to flip the children too use: <br/>
456
+ * sprite.setScaleX(sprite.getScaleX() * -1); <p/>
457
+ * @return {Boolean} true if the sprite is flipped horizontally, false otherwise.
458
+ */
459
+ isFlippedX:function () {
460
+ return this._flippedX;
461
+ },
462
+
463
+ /**
464
+ * <p>
465
+ * Return the flag which indicates whether the sprite is flipped vertically or not. <br/>
466
+ * <br/>
467
+ * It only flips the texture of the sprite, and not the texture of the sprite's children. <br/>
468
+ * Also, flipping the texture doesn't alter the anchorPoint. <br/>
469
+ * If you want to flip the anchorPoint too, and/or to flip the children too use: <br/>
470
+ * sprite.setScaleY(sprite.getScaleY() * -1); <p/>
471
+ * @return {Boolean} true if the sprite is flipped vertically, false otherwise.
472
+ */
473
+ isFlippedY:function () {
474
+ return this._flippedY;
475
+ },
476
+
477
+ //
478
+ // RGBA protocol
479
+ //
480
+ /**
481
+ * Sets whether opacity modify color or not.
482
+ * @function
483
+ * @param {Boolean} modify
484
+ */
485
+ setOpacityModifyRGB: function (modify) {
486
+ if (this._opacityModifyRGB !== modify) {
487
+ this._opacityModifyRGB = modify;
488
+ this._renderCmd._setColorDirty();
489
+ }
490
+ },
491
+
492
+ /**
493
+ * Returns whether opacity modify color or not.
494
+ * @return {Boolean}
495
+ */
496
+ isOpacityModifyRGB:function () {
497
+ return this._opacityModifyRGB;
498
+ },
499
+
500
+ // Animation
501
+
502
+ /**
503
+ * Changes the display frame with animation name and index.<br/>
504
+ * The animation name will be get from the CCAnimationCache
505
+ * @param {String} animationName
506
+ * @param {Number} frameIndex
507
+ */
508
+ setDisplayFrameWithAnimationName:function (animationName, frameIndex) {
509
+ cc.assert(animationName, cc._LogInfos.Sprite_setDisplayFrameWithAnimationName_3);
510
+
511
+ var cache = cc.animationCache.getAnimation(animationName);
512
+ if(!cache){
513
+ cc.log(cc._LogInfos.Sprite_setDisplayFrameWithAnimationName);
514
+ return;
515
+ }
516
+ var animFrame = cache.getFrames()[frameIndex];
517
+ if(!animFrame){
518
+ cc.log(cc._LogInfos.Sprite_setDisplayFrameWithAnimationName_2);
519
+ return;
520
+ }
521
+ this.setSpriteFrame(animFrame.getSpriteFrame());
522
+ },
523
+
524
+ /**
525
+ * Returns the batch node object if this sprite is rendered by cc.SpriteBatchNode
526
+ * @returns {cc.SpriteBatchNode|null} The cc.SpriteBatchNode object if this sprite is rendered by cc.SpriteBatchNode, null if the sprite isn't used batch node.
527
+ */
528
+ getBatchNode:function () {
529
+ return this._batchNode;
530
+ },
531
+
532
+ _setReorderChildDirtyRecursively:function () {
533
+ //only set parents flag the first time
534
+ if (!this._reorderChildDirty) {
535
+ this._reorderChildDirty = true;
536
+ var pNode = this._parent;
537
+ while (pNode && pNode != this._batchNode) {
538
+ pNode._setReorderChildDirtyRecursively();
539
+ pNode = pNode.parent;
540
+ }
541
+ }
542
+ },
543
+
544
+ // CCTextureProtocol
545
+ /**
546
+ * Returns the texture of the sprite node
547
+ * @returns {cc.Texture2D}
548
+ */
549
+ getTexture:function () {
550
+ return this._texture;
551
+ },
552
+
553
+ _softInit: function (fileName, rect, rotated) {
554
+ if (fileName === undefined)
555
+ cc.Sprite.prototype.init.call(this);
556
+ else if (cc.isString(fileName)) {
557
+ if (fileName[0] === "#") {
558
+ // Init with a sprite frame name
559
+ var frameName = fileName.substr(1, fileName.length - 1);
560
+ var spriteFrame = cc.spriteFrameCache.getSpriteFrame(frameName);
561
+ this.initWithSpriteFrame(spriteFrame);
562
+ } else {
563
+ // Init with filename and rect
564
+ cc.Sprite.prototype.init.call(this, fileName, rect);
565
+ }
566
+ } else if (cc.isObject(fileName)) {
567
+ if (fileName instanceof cc.Texture2D) {
568
+ // Init with texture and rect
569
+ this.initWithTexture(fileName, rect, rotated);
570
+ } else if (fileName instanceof cc.SpriteFrame) {
571
+ // Init with a sprite frame
572
+ this.initWithSpriteFrame(fileName);
573
+ } else if ((fileName instanceof HTMLImageElement) || (fileName instanceof HTMLCanvasElement)) {
574
+ // Init with a canvas or image element
575
+ var texture2d = new cc.Texture2D();
576
+ texture2d.initWithElement(fileName);
577
+ texture2d.handleLoadedTexture();
578
+ this.initWithTexture(texture2d);
579
+ }
580
+ }
581
+ },
582
+
583
+ /**
584
+ * Returns the quad (tex coords, vertex coords and color) information.
585
+ * @return {cc.V3F_C4B_T2F_Quad|null} Returns a cc.V3F_C4B_T2F_Quad object when render mode is WebGL, returns null when render mode is Canvas.
586
+ */
587
+ getQuad:function () {
588
+ return this._renderCmd.getQuad();
589
+ },
590
+
591
+ /**
592
+ * conforms to cc.TextureProtocol protocol
593
+ * @function
594
+ * @param {Number|cc.BlendFunc} src
595
+ * @param {Number} dst
596
+ */
597
+ setBlendFunc: function (src, dst) {
598
+ var locBlendFunc = this._blendFunc;
599
+ if (dst === undefined) {
600
+ locBlendFunc.src = src.src;
601
+ locBlendFunc.dst = src.dst;
602
+ } else {
603
+ locBlendFunc.src = src;
604
+ locBlendFunc.dst = dst;
605
+ }
606
+ this._renderCmd.updateBlendFunc(locBlendFunc);
607
+ },
608
+
609
+ /**
610
+ * Initializes an empty sprite with nothing init.<br/>
611
+ * Please pass parameters to the constructor to initialize the sprite, do not call this function yourself.
612
+ * @function
613
+ * @return {Boolean}
614
+ */
615
+ init: function () {
616
+ var _t = this;
617
+ if (arguments.length > 0)
618
+ return _t.initWithFile(arguments[0], arguments[1]);
619
+
620
+ cc.Node.prototype.init.call(_t);
621
+ _t.dirty = _t._recursiveDirty = false;
622
+
623
+ _t._blendFunc.src = cc.BLEND_SRC;
624
+ _t._blendFunc.dst = cc.BLEND_DST;
625
+
626
+ _t.texture = null;
627
+ _t._flippedX = _t._flippedY = false;
628
+
629
+ // default transform anchor: center
630
+ _t.anchorX = 0.5;
631
+ _t.anchorY = 0.5;
632
+
633
+ // zwoptex default values
634
+ _t._offsetPosition.x = 0;
635
+ _t._offsetPosition.y = 0;
636
+ _t._hasChildren = false;
637
+
638
+ this._renderCmd._init();
639
+ // updated in "useSelfRender"
640
+ // Atlas: TexCoords
641
+ _t.setTextureRect(cc.rect(0, 0, 0, 0), false, cc.size(0, 0));
642
+ return true;
643
+ },
644
+
645
+ /**
646
+ * <p>
647
+ * Initializes a sprite with an image filename.<br/>
648
+ *
649
+ * This method will find pszFilename from local file system, load its content to CCTexture2D,<br/>
650
+ * then use CCTexture2D to create a sprite.<br/>
651
+ * After initialization, the rect used will be the size of the image. The offset will be (0,0).<br/>
652
+ * Please pass parameters to the constructor to initialize the sprite, do not call this function yourself.
653
+ * </p>
654
+ * @param {String} filename The path to an image file in local file system
655
+ * @param {cc.Rect} rect The rectangle assigned the content area from texture.
656
+ * @return {Boolean} true if the sprite is initialized properly, false otherwise.
657
+ */
658
+ initWithFile:function (filename, rect) {
659
+ cc.assert(filename, cc._LogInfos.Sprite_initWithFile);
660
+
661
+ var tex = cc.textureCache.getTextureForKey(filename);
662
+ if (!tex) {
663
+ tex = cc.textureCache.addImage(filename);
664
+ return this.initWithTexture(tex, rect || cc.rect(0, 0, tex._contentSize.width, tex._contentSize.height));
665
+ } else {
666
+ if (!rect) {
667
+ var size = tex.getContentSize();
668
+ rect = cc.rect(0, 0, size.width, size.height);
669
+ }
670
+ return this.initWithTexture(tex, rect);
671
+ }
672
+ },
673
+
674
+ /**
675
+ * Initializes a sprite with a texture and a rect in points, optionally rotated. <br/>
676
+ * After initialization, the rect used will be the size of the texture, and the offset will be (0,0).<br/>
677
+ * Please pass parameters to the constructor to initialize the sprite, do not call this function yourself.
678
+ * @function
679
+ * @param {cc.Texture2D|HTMLImageElement|HTMLCanvasElement} texture A pointer to an existing CCTexture2D object. You can use a CCTexture2D object for many sprites.
680
+ * @param {cc.Rect} [rect] Only the contents inside rect of this texture will be applied for this sprite.
681
+ * @param {Boolean} [rotated] Whether or not the texture rectangle is rotated.
682
+ * @param {Boolean} [counterclockwise=true] Whether or not the texture rectangle rotation is counterclockwise (texture package is counterclockwise, spine is clockwise).
683
+ * @return {Boolean} true if the sprite is initialized properly, false otherwise.
684
+ */
685
+ initWithTexture: function (texture, rect, rotated, counterclockwise) {
686
+ var _t = this;
687
+ cc.assert(arguments.length != 0, cc._LogInfos.CCSpriteBatchNode_initWithTexture);
688
+
689
+ rotated = rotated || false;
690
+ texture = this._renderCmd._handleTextureForRotatedTexture(texture, rect, rotated, counterclockwise);
691
+
692
+ if (!cc.Node.prototype.init.call(_t))
693
+ return false;
694
+
695
+ _t._batchNode = null;
696
+ _t._recursiveDirty = false;
697
+ _t.dirty = false;
698
+ _t._opacityModifyRGB = true;
699
+
700
+ _t._blendFunc.src = cc.BLEND_SRC;
701
+ _t._blendFunc.dst = cc.BLEND_DST;
702
+
703
+ _t._flippedX = _t._flippedY = false;
704
+
705
+ // default transform anchor: center
706
+ _t.setAnchorPoint(0.5, 0.5);
707
+
708
+ // zwoptex default values
709
+ _t._offsetPosition.x = 0;
710
+ _t._offsetPosition.y = 0;
711
+ _t._hasChildren = false;
712
+
713
+ this._renderCmd._init();
714
+
715
+ var locTextureLoaded = texture.isLoaded();
716
+ _t._textureLoaded = locTextureLoaded;
717
+
718
+ if (!locTextureLoaded) {
719
+ _t._rectRotated = rotated;
720
+ if (rect) {
721
+ _t._rect.x = rect.x;
722
+ _t._rect.y = rect.y;
723
+ _t._rect.width = rect.width;
724
+ _t._rect.height = rect.height;
725
+ }
726
+ if(_t.texture)
727
+ _t.texture.removeEventListener("load", _t);
728
+ texture.addEventListener("load", _t._renderCmd._textureLoadedCallback, _t);
729
+ _t.texture = texture;
730
+ return true;
731
+ }
732
+
733
+ if (!rect)
734
+ rect = cc.rect(0, 0, texture.width, texture.height);
735
+
736
+ this._renderCmd._checkTextureBoundary(texture, rect, rotated);
737
+
738
+ _t.texture = texture;
739
+ _t.setTextureRect(rect, rotated);
740
+
741
+ // by default use "Self Render".
742
+ // if the sprite is added to a batchnode, then it will automatically switch to "batchnode Render"
743
+ _t.setBatchNode(null);
744
+ return true;
745
+ },
746
+
747
+ /**
748
+ * Updates the texture rect of the CCSprite in points.
749
+ * @function
750
+ * @param {cc.Rect} rect a rect of texture
751
+ * @param {Boolean} [rotated] Whether or not the texture is rotated
752
+ * @param {cc.Size} [untrimmedSize] The original pixels size of the texture
753
+ */
754
+ setTextureRect: function (rect, rotated, untrimmedSize, needConvert) {
755
+ var _t = this;
756
+ _t._rectRotated = rotated || false;
757
+ _t.setContentSize(untrimmedSize || rect);
758
+
759
+ _t.setVertexRect(rect);
760
+ _t._renderCmd._setTextureCoords(rect, needConvert);
761
+
762
+ var relativeOffset = _t._unflippedOffsetPositionFromCenter;
763
+ if (_t._flippedX)
764
+ relativeOffset.x = -relativeOffset.x;
765
+ if (_t._flippedY)
766
+ relativeOffset.y = -relativeOffset.y;
767
+ var locRect = _t._rect;
768
+ _t._offsetPosition.x = relativeOffset.x + (_t._contentSize.width - locRect.width) / 2;
769
+ _t._offsetPosition.y = relativeOffset.y + (_t._contentSize.height - locRect.height) / 2;
770
+
771
+ // rendering using batch node
772
+ if (_t._batchNode) {
773
+ // update dirty, don't update _recursiveDirty
774
+ _t.dirty = true;
775
+ } else {
776
+ // self rendering
777
+ // Atlas: Vertex
778
+ this._renderCmd._resetForBatchNode();
779
+ }
780
+ },
781
+
782
+ // BatchNode methods
783
+ /**
784
+ * Updates the quad according the the rotation, position, scale values.
785
+ * @function
786
+ */
787
+ updateTransform: function(){
788
+ this._renderCmd.updateTransform();
789
+ },
790
+
791
+ /**
792
+ * Add child to sprite (override cc.Node)
793
+ * @function
794
+ * @param {cc.Sprite} child
795
+ * @param {Number} localZOrder child's zOrder
796
+ * @param {String} [tag] child's tag
797
+ * @override
798
+ */
799
+ addChild: function (child, localZOrder, tag) {
800
+ cc.assert(child, cc._LogInfos.CCSpriteBatchNode_addChild_2);
801
+
802
+ if (localZOrder == null)
803
+ localZOrder = child._localZOrder;
804
+ if (tag == null)
805
+ tag = child.tag;
806
+
807
+ if(this._renderCmd._setBatchNodeForAddChild(child)){
808
+ //cc.Node already sets isReorderChildDirty_ so this needs to be after batchNode check
809
+ cc.Node.prototype.addChild.call(this, child, localZOrder, tag);
810
+ this._hasChildren = true;
811
+ }
812
+ },
813
+
814
+ // Frames
815
+ /**
816
+ * Sets a new sprite frame to the sprite.
817
+ * @function
818
+ * @param {cc.SpriteFrame|String} newFrame
819
+ */
820
+ setSpriteFrame: function (newFrame) {
821
+ var _t = this;
822
+ if(cc.isString(newFrame)){
823
+ newFrame = cc.spriteFrameCache.getSpriteFrame(newFrame);
824
+ cc.assert(newFrame, cc._LogInfos.Sprite_setSpriteFrame)
825
+ }
826
+
827
+ this.setNodeDirty(true);
828
+
829
+ var frameOffset = newFrame.getOffset();
830
+ _t._unflippedOffsetPositionFromCenter.x = frameOffset.x;
831
+ _t._unflippedOffsetPositionFromCenter.y = frameOffset.y;
832
+
833
+ // update rect
834
+ var pNewTexture = newFrame.getTexture();
835
+ var locTextureLoaded = newFrame.textureLoaded();
836
+ if (!locTextureLoaded) {
837
+ _t._textureLoaded = false;
838
+ newFrame.addEventListener("load", function (sender) {
839
+ _t._textureLoaded = true;
840
+ var locNewTexture = sender.getTexture();
841
+ if (locNewTexture != _t._texture)
842
+ _t.texture = locNewTexture;
843
+ _t.setTextureRect(sender.getRect(), sender.isRotated(), sender.getOriginalSize());
844
+ _t.dispatchEvent("load");
845
+ _t.setColor(_t.color);
846
+ }, _t);
847
+ }else{
848
+ // update texture before updating texture rect
849
+ if (pNewTexture != _t._texture)
850
+ _t.texture = pNewTexture;
851
+ _t.setTextureRect(newFrame.getRect(), newFrame.isRotated(), newFrame.getOriginalSize());
852
+ }
853
+ this._renderCmd._updateForSetSpriteFrame(pNewTexture);
854
+ },
855
+
856
+ /**
857
+ * Sets a new display frame to the sprite.
858
+ * @param {cc.SpriteFrame|String} newFrame
859
+ * @deprecated
860
+ */
861
+ setDisplayFrame: function(newFrame){
862
+ cc.log(cc._LogInfos.Sprite_setDisplayFrame);
863
+ this.setSpriteFrame(newFrame);
864
+ },
865
+
866
+ /**
867
+ * Returns whether or not a cc.SpriteFrame is being displayed
868
+ * @function
869
+ * @param {cc.SpriteFrame} frame
870
+ * @return {Boolean}
871
+ */
872
+ isFrameDisplayed: function(frame){
873
+ return this._renderCmd.isFrameDisplayed(frame);
874
+ },
875
+
876
+ /**
877
+ * Returns the current displayed frame.
878
+ * @return {cc.SpriteFrame}
879
+ */
880
+ displayFrame: function () {
881
+ return new cc.SpriteFrame(this._texture,
882
+ cc.rectPointsToPixels(this._rect),
883
+ this._rectRotated,
884
+ cc.pointPointsToPixels(this._unflippedOffsetPositionFromCenter),
885
+ cc.sizePointsToPixels(this._contentSize));
886
+ },
887
+
888
+ /**
889
+ * Sets the batch node to sprite
890
+ * @function
891
+ * @param {cc.SpriteBatchNode|null} spriteBatchNode
892
+ * @example
893
+ * var batch = new cc.SpriteBatchNode("Images/grossini_dance_atlas.png", 15);
894
+ * var sprite = new cc.Sprite(batch.texture, cc.rect(0, 0, 57, 57));
895
+ * batch.addChild(sprite);
896
+ * layer.addChild(batch);
897
+ */
898
+ setBatchNode:function (spriteBatchNode) {
899
+ var _t = this;
900
+ _t._batchNode = spriteBatchNode; // weak reference
901
+
902
+ // self render
903
+ if (!_t._batchNode) {
904
+ _t.atlasIndex = cc.Sprite.INDEX_NOT_INITIALIZED;
905
+ _t.textureAtlas = null;
906
+ _t._recursiveDirty = false;
907
+ _t.dirty = false;
908
+
909
+ this._renderCmd._resetForBatchNode();
910
+ } else {
911
+ // using batch
912
+ _t._transformToBatch = cc.affineTransformIdentity();
913
+ _t.textureAtlas = _t._batchNode.getTextureAtlas(); // weak ref
914
+ }
915
+ },
916
+
917
+ // CCTextureProtocol
918
+ /**
919
+ * Sets the texture of sprite
920
+ * @function
921
+ * @param {cc.Texture2D|String} texture
922
+ */
923
+ setTexture: function (texture) {
924
+ if(!texture)
925
+ return this._renderCmd._setTexture(null);
926
+
927
+ if(cc.isString(texture)){
928
+ texture = cc.textureCache.addImage(texture);
929
+
930
+ if(!texture._textureLoaded){
931
+ texture.addEventListener("load", function(){
932
+ this._renderCmd._setTexture(texture);
933
+ this._changeRectWithTexture(texture.getContentSize());
934
+ this.setColor(this._realColor);
935
+ this._textureLoaded = true;
936
+ }, this);
937
+ }else{
938
+ this._renderCmd._setTexture(texture);
939
+ this._changeRectWithTexture(texture.getContentSize());
940
+ this.setColor(this._realColor);
941
+ this._textureLoaded = true;
942
+ }
943
+ }else{
944
+ // CCSprite: setTexture doesn't work when the sprite is rendered using a CCSpriteSheet
945
+ cc.assert(texture instanceof cc.Texture2D, cc._LogInfos.Sprite_setTexture_2);
946
+ this._changeRectWithTexture(texture.getContentSize());
947
+ this._renderCmd._setTexture(texture);
948
+ }
949
+ },
950
+
951
+ _changeRectWithTexture: function(rect){
952
+ if(!rect || (!rect.width && !rect.height)) return;
953
+ var textureRect = this.getTextureRect();
954
+ if(textureRect.height || textureRect.width) return;
955
+ rect.x = rect.x || 0;
956
+ rect.y = rect.y || 0;
957
+ rect.width = rect.width || 0;
958
+ rect.height = rect.height || 0;
959
+ this.setTextureRect(rect);
960
+ },
961
+
962
+ _createRenderCmd: function(){
963
+ if(cc._renderType === cc._RENDER_TYPE_CANVAS)
964
+ return new cc.Sprite.CanvasRenderCmd(this);
965
+ else
966
+ return new cc.Sprite.WebGLRenderCmd(this);
967
+ }
968
+ });
969
+
970
+ /**
971
+ * Create a sprite with image path or frame name or texture or spriteFrame.
972
+ * @deprecated since v3.0, please use new construction instead
973
+ * @see cc.Sprite
974
+ * @param {String|cc.SpriteFrame|HTMLImageElement|cc.Texture2D} fileName The string which indicates a path to image file, e.g., "scene1/monster.png".
975
+ * @param {cc.Rect} rect Only the contents inside rect of pszFileName's texture will be applied for this sprite.
976
+ * @param {Boolean} [rotated] Whether or not the texture rectangle is rotated.
977
+ * @return {cc.Sprite} A valid sprite object
978
+ */
979
+ cc.Sprite.create = function (fileName, rect, rotated) {
980
+ return new cc.Sprite(fileName, rect, rotated);
981
+ };
982
+
983
+ /**
984
+ * @deprecated since v3.0, please use new construction instead
985
+ * @see cc.Sprite
986
+ * @function
987
+ */
988
+ cc.Sprite.createWithTexture = cc.Sprite.create;
989
+
990
+ /**
991
+ * @deprecated since v3.0, please use new construction instead
992
+ * @see cc.Sprite
993
+ * @function
994
+ */
995
+ cc.Sprite.createWithSpriteFrameName = cc.Sprite.create;
996
+
997
+ /**
998
+ * @deprecated since v3.0, please use new construction instead
999
+ * @see cc.Sprite
1000
+ * @function
1001
+ */
1002
+ cc.Sprite.createWithSpriteFrame = cc.Sprite.create;
1003
+ /**
1004
+ * cc.Sprite invalid index on the cc.SpriteBatchNode
1005
+ * @constant
1006
+ * @type {Number}
1007
+ */
1008
+ cc.Sprite.INDEX_NOT_INITIALIZED = -1;
1009
+
1010
+ cc.EventHelper.prototype.apply(cc.Sprite.prototype);
1011
+
1012
+ cc.assert(cc.isFunction(cc._tmp.PrototypeSprite), cc._LogInfos.MissingFile, "SpritesPropertyDefine.js");
1013
+ cc._tmp.PrototypeSprite();
1014
+ delete cc._tmp.PrototypeSprite;