ccb 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,958 @@
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
+ Use any of these editors to generate BMFonts:
27
+ http://glyphdesigner.71squared.com/ (Commercial, Mac OS X)
28
+ http://www.n4te.com/hiero/hiero.jnlp (Free, Java)
29
+ http://slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
30
+ http://www.angelcode.com/products/bmfont/ (Free, Windows only)
31
+ ****************************************************************************/
32
+ /**
33
+ * @constant
34
+ * @type Number
35
+ */
36
+ cc.LABEL_AUTOMATIC_WIDTH = -1;
37
+
38
+ /**
39
+ * <p>cc.LabelBMFont is a subclass of cc.SpriteBatchNode.</p>
40
+ *
41
+ * <p>Features:<br/>
42
+ * <ul><li>- Treats each character like a cc.Sprite. This means that each individual character can be:</li>
43
+ * <li>- rotated</li>
44
+ * <li>- scaled</li>
45
+ * <li>- translated</li>
46
+ * <li>- tinted</li>
47
+ * <li>- change the opacity</li>
48
+ * <li>- It can be used as part of a menu item.</li>
49
+ * <li>- anchorPoint can be used to align the "label"</li>
50
+ * <li>- Supports AngelCode text format</li></ul></p>
51
+ *
52
+ * <p>Limitations:<br/>
53
+ * - All inner characters are using an anchorPoint of (0.5, 0.5) and it is not recommend to change it
54
+ * because it might affect the rendering</p>
55
+ *
56
+ * <p>cc.LabelBMFont implements the protocol cc.LabelProtocol, like cc.Label and cc.LabelAtlas.<br/>
57
+ * cc.LabelBMFont has the flexibility of cc.Label, the speed of cc.LabelAtlas and all the features of cc.Sprite.<br/>
58
+ * If in doubt, use cc.LabelBMFont instead of cc.LabelAtlas / cc.Label.</p>
59
+ *
60
+ * <p>Supported editors:<br/>
61
+ * http://glyphdesigner.71squared.com/ (Commercial, Mac OS X)<br/>
62
+ * http://www.n4te.com/hiero/hiero.jnlp (Free, Java)<br/>
63
+ * http://slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)<br/>
64
+ * http://www.angelcode.com/products/bmfont/ (Free, Windows only)</p>
65
+ * @class
66
+ * @extends cc.SpriteBatchNode
67
+ *
68
+ * @property {String} string - Content string of label
69
+ * @property {Number} textAlign - Horizontal Alignment of label, cc.TEXT_ALIGNMENT_LEFT|cc.TEXT_ALIGNMENT_CENTER|cc.TEXT_ALIGNMENT_RIGHT
70
+ * @property {Number} boundingWidth - Width of the bounding box of label, the real content width is limited by boundingWidth
71
+ *
72
+ * @param {String} str
73
+ * @param {String} fntFile
74
+ * @param {Number} [width=-1]
75
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
76
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
77
+ *
78
+ * @example
79
+ * // Example 01
80
+ * var label1 = new cc.LabelBMFont("Test case", "test.fnt");
81
+ *
82
+ * // Example 02
83
+ * var label2 = new cc.LabelBMFont("test case", "test.fnt", 200, cc.TEXT_ALIGNMENT_LEFT);
84
+ *
85
+ * // Example 03
86
+ * var label3 = new cc.LabelBMFont("This is a \n test case", "test.fnt", 200, cc.TEXT_ALIGNMENT_LEFT, cc.p(0,0));
87
+ */
88
+ cc.LabelBMFont = cc.SpriteBatchNode.extend(/** @lends cc.LabelBMFont# */{
89
+ //property string is Getter and Setter.
90
+ //property textAlign is Getter and Setter.
91
+ //property boundingWidth is Getter and Setter.
92
+ _opacityModifyRGB: false,
93
+
94
+ _string: "",
95
+ _config: null,
96
+
97
+ // name of fntFile
98
+ _fntFile: "",
99
+
100
+ // initial string without line breaks
101
+ _initialString: "",
102
+
103
+ // alignment of all lines
104
+ _alignment: cc.TEXT_ALIGNMENT_CENTER,
105
+
106
+ // max width until a line break is added
107
+ _width: -1,
108
+ _lineBreakWithoutSpaces: false,
109
+ _imageOffset: null,
110
+
111
+ _reusedChar: null,
112
+
113
+ _textureLoaded: false,
114
+ _className: "LabelBMFont",
115
+
116
+ _createRenderCmd: function(){
117
+ if(cc._renderType === cc._RENDER_TYPE_WEBGL)
118
+ return new cc.LabelBMFont.WebGLRenderCmd(this);
119
+ else
120
+ return new cc.LabelBMFont.CanvasRenderCmd(this);
121
+ },
122
+
123
+ _setString: function (newString, needUpdateLabel) {
124
+ if (!needUpdateLabel) {
125
+ this._string = newString;
126
+ } else {
127
+ this._initialString = newString;
128
+ }
129
+ var locChildren = this._children;
130
+ if (locChildren) {
131
+ for (var i = 0; i < locChildren.length; i++) {
132
+ var selNode = locChildren[i];
133
+ if (selNode)
134
+ selNode.setVisible(false);
135
+ }
136
+ }
137
+ if (this._textureLoaded) {
138
+ this.createFontChars();
139
+ if (needUpdateLabel)
140
+ this.updateLabel();
141
+ }
142
+ },
143
+
144
+ /**
145
+ * Constructor function, override it to extend the construction behavior, remember to call "this._super()" in the extended "ctor" function. <br />
146
+ * creates a bitmap font atlas with an initial string and the FNT file.
147
+ * @param {String} str
148
+ * @param {String} fntFile
149
+ * @param {Number} [width=-1]
150
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
151
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
152
+ */
153
+ ctor: function (str, fntFile, width, alignment, imageOffset) {
154
+ cc.SpriteBatchNode.prototype.ctor.call(this);
155
+ this._imageOffset = cc.p(0, 0);
156
+ this._reusedChar = [];
157
+ this._cascadeColorEnabled = true;
158
+ this._cascadeOpacityEnabled = true;
159
+ this.initWithString(str, fntFile, width, alignment, imageOffset);
160
+ },
161
+
162
+ /**
163
+ * return texture is loaded
164
+ * @returns {boolean}
165
+ */
166
+ textureLoaded: function () {
167
+ return this._textureLoaded;
168
+ },
169
+
170
+ /**
171
+ * add texture loaded event listener. <br />
172
+ * Will execute the callback in the loaded.
173
+ * @param {Function} callback
174
+ * @param {Object} target
175
+ * @deprecated since 3.1, please use addEventListener instead
176
+ */
177
+ addLoadedEventListener: function (callback, target) {
178
+ this.addEventListener("load", callback, target);
179
+ },
180
+
181
+ /**
182
+ * Conforms to cc.RGBAProtocol protocol.
183
+ * @return {Boolean}
184
+ */
185
+ isOpacityModifyRGB: function () {
186
+ return this._opacityModifyRGB;
187
+ },
188
+
189
+ /**
190
+ * Set whether to support cc.RGBAProtocol protocol
191
+ * @param {Boolean} opacityModifyRGB
192
+ */
193
+ setOpacityModifyRGB: function (opacityModifyRGB) {
194
+ this._opacityModifyRGB = opacityModifyRGB;
195
+ var locChildren = this._children;
196
+ if (locChildren) {
197
+ for (var i = 0; i < locChildren.length; i++) {
198
+ var node = locChildren[i];
199
+ if (node)
200
+ node.opacityModifyRGB = this._opacityModifyRGB;
201
+ }
202
+ }
203
+ },
204
+
205
+ _changeTextureColor: function () {
206
+ this._renderCmd._changeTextureColor();
207
+ },
208
+
209
+ /**
210
+ * Initialization of the node, please do not call this function by yourself, you should pass the parameters to constructor to initialize it
.
211
+ */
212
+ init: function () {
213
+ return this.initWithString(null, null, null, null, null);
214
+ },
215
+
216
+ /**
217
+ * init a bitmap font atlas with an initial string and the FNT file
218
+ * @param {String} str
219
+ * @param {String} fntFile
220
+ * @param {Number} [width=-1]
221
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
222
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
223
+ * @return {Boolean}
224
+ */
225
+ initWithString: function (str, fntFile, width, alignment, imageOffset) {
226
+ var self = this, theString = str || "";
227
+ var cmd = this._renderCmd;
228
+
229
+ if (self._config)
230
+ cc.log("cc.LabelBMFont.initWithString(): re-init is no longer supported");
231
+
232
+ var texture;
233
+ if (fntFile) {
234
+ var newConf = cc.loader.getRes(fntFile);
235
+ if (!newConf) {
236
+ cc.log("cc.LabelBMFont.initWithString(): Impossible to create font. Please check file");
237
+ return false;
238
+ }
239
+
240
+ self._config = newConf;
241
+ self._fntFile = fntFile;
242
+ texture = cc.textureCache.addImage(newConf.atlasName);
243
+ var locIsLoaded = texture.isLoaded();
244
+ self._textureLoaded = locIsLoaded;
245
+ if (!locIsLoaded) {
246
+ texture.addEventListener("load", function (sender) {
247
+ var self1 = this;
248
+ self1._textureLoaded = true;
249
+ //reset the LabelBMFont
250
+ self1.initWithTexture(sender, self1._initialString.length);
251
+ self1.setString(self1._initialString, true);
252
+ self1.dispatchEvent("load");
253
+ }, self);
254
+ }
255
+ } else {
256
+ texture = new cc.Texture2D();
257
+ var image = new Image();
258
+ texture.initWithElement(image);
259
+ self._textureLoaded = false;
260
+ }
261
+
262
+ if (self.initWithTexture(texture, theString.length)) {
263
+ self._alignment = alignment || cc.TEXT_ALIGNMENT_LEFT;
264
+ self._imageOffset = imageOffset || cc.p(0, 0);
265
+ self._width = (width == null) ? -1 : width;
266
+
267
+ self._realOpacity = 255;
268
+ self._realColor = cc.color(255, 255, 255, 255);
269
+
270
+ self._contentSize.width = 0;
271
+ self._contentSize.height = 0;
272
+
273
+ self.setAnchorPoint(0.5, 0.5);
274
+
275
+ this._renderCmd._initBatchTexture();
276
+
277
+ self.setString(theString, true);
278
+ return true;
279
+ }
280
+ return false;
281
+ },
282
+
283
+ /**
284
+ * updates the font chars based on the string to render
285
+ */
286
+ createFontChars: function () {
287
+ var self = this;
288
+ var cmd = this._renderCmd;
289
+ var locTexture = cmd._texture || self.textureAtlas.texture;
290
+
291
+ var nextFontPositionX = 0;
292
+
293
+ var tmpSize = cc.size(0, 0);
294
+
295
+ var longestLine = 0;
296
+
297
+ var quantityOfLines = 1;
298
+
299
+ var locStr = self._string;
300
+ var stringLen = locStr ? locStr.length : 0;
301
+
302
+ if (stringLen === 0)
303
+ return;
304
+
305
+ var i, locCfg = self._config, locKerningDict = locCfg.kerningDict,
306
+ locCommonH = locCfg.commonHeight, locFontDict = locCfg.fontDefDictionary;
307
+ for (i = 0; i < stringLen - 1; i++) {
308
+ if (locStr.charCodeAt(i) == 10) quantityOfLines++;
309
+ }
310
+
311
+ var totalHeight = locCommonH * quantityOfLines;
312
+ var nextFontPositionY = -(locCommonH - locCommonH * quantityOfLines);
313
+
314
+ var prev = -1;
315
+ for (i = 0; i < stringLen; i++) {
316
+ var key = locStr.charCodeAt(i);
317
+ if (key == 0) continue;
318
+
319
+ if (key === 10) {
320
+ //new line
321
+ nextFontPositionX = 0;
322
+ nextFontPositionY -= locCfg.commonHeight;
323
+ continue;
324
+ }
325
+
326
+ var kerningAmount = locKerningDict[(prev << 16) | (key & 0xffff)] || 0;
327
+ var fontDef = locFontDict[key];
328
+ if (!fontDef) {
329
+ cc.log("cocos2d: LabelBMFont: character not found " + locStr[i]);
330
+ continue;
331
+ }
332
+
333
+ var rect = cc.rect(fontDef.rect.x, fontDef.rect.y, fontDef.rect.width, fontDef.rect.height);
334
+ rect = cc.rectPixelsToPoints(rect);
335
+ rect.x += self._imageOffset.x;
336
+ rect.y += self._imageOffset.y;
337
+
338
+ var fontChar = self.getChildByTag(i);
339
+
340
+ if(!fontChar){
341
+ fontChar = new cc.Sprite();
342
+ fontChar.initWithTexture(locTexture, rect, false);
343
+ fontChar._newTextureWhenChangeColor = true;
344
+ this.addChild(fontChar, 0, i);
345
+ }else{
346
+ this._renderCmd._updateCharTexture(fontChar, rect, key);
347
+ }
348
+
349
+ // Apply label properties
350
+ fontChar.opacityModifyRGB = this._opacityModifyRGB;
351
+ this._renderCmd._updateCharColorAndOpacity(fontChar);
352
+
353
+ var yOffset = locCfg.commonHeight - fontDef.yOffset;
354
+ var fontPos = cc.p(nextFontPositionX + fontDef.xOffset + fontDef.rect.width * 0.5 + kerningAmount,
355
+ nextFontPositionY + yOffset - rect.height * 0.5 * cc.contentScaleFactor());
356
+ fontChar.setPosition(cc.pointPixelsToPoints(fontPos));
357
+
358
+ // update kerning
359
+ nextFontPositionX += fontDef.xAdvance + kerningAmount;
360
+ prev = key;
361
+
362
+ if (longestLine < nextFontPositionX)
363
+ longestLine = nextFontPositionX;
364
+ }
365
+
366
+ //If the last character processed has an xAdvance which is less that the width of the characters image, then we need
367
+ // to adjust the width of the string to take this into account, or the character will overlap the end of the bounding box
368
+ if(fontDef && fontDef.xAdvance < fontDef.rect.width)
369
+ tmpSize.width = longestLine - fontDef.xAdvance + fontDef.rect.width;
370
+ else
371
+ tmpSize.width = longestLine;
372
+ tmpSize.height = totalHeight;
373
+ self.setContentSize(cc.sizePixelsToPoints(tmpSize));
374
+ },
375
+
376
+ /**
377
+ * Update String. <br />
378
+ * Only update this label display string.
379
+ * @param {Boolean} fromUpdate
380
+ */
381
+ updateString: function (fromUpdate) {
382
+ var self = this;
383
+ var locChildren = self._children;
384
+ if (locChildren) {
385
+ for (var i = 0, li = locChildren.length; i < li; i++) {
386
+ var node = locChildren[i];
387
+ if (node) node.visible = false;
388
+ }
389
+ }
390
+ if (self._config)
391
+ self.createFontChars();
392
+
393
+ if (!fromUpdate)
394
+ self.updateLabel();
395
+ },
396
+
397
+ /**
398
+ * Gets the text of this label
399
+ * @return {String}
400
+ */
401
+ getString: function () {
402
+ return this._initialString;
403
+ },
404
+
405
+ /**
406
+ * Set the text
407
+ * @param {String} newString
408
+ * @param {Boolean|null} needUpdateLabel
409
+ */
410
+ setString: function (newString, needUpdateLabel) {
411
+ newString = String(newString);
412
+ if (needUpdateLabel == null)
413
+ needUpdateLabel = true;
414
+ if (newString == null || !cc.isString(newString))
415
+ newString = newString + "";
416
+
417
+ this._initialString = newString;
418
+ this._setString(newString, needUpdateLabel);
419
+ },
420
+
421
+ _setStringForSetter: function (newString) {
422
+ this.setString(newString, false);
423
+ },
424
+
425
+ /**
426
+ * Set the text. <br />
427
+ * Change this Label display string.
428
+ * @deprecated since v3.0 please use .setString
429
+ * @param label
430
+ */
431
+ setCString: function (label) {
432
+ this.setString(label, true);
433
+ },
434
+
435
+ // calc the text all with in a line
436
+ _getCharsWidth:function (startIndex, endIndex) {
437
+ if (endIndex <= 0)
438
+ {
439
+ return 0;
440
+ }
441
+ var curTextFirstSprite = this.getChildByTag(startIndex);
442
+ var curTextLastSprite = this.getChildByTag(startIndex + endIndex);
443
+ return this._getLetterPosXLeft(curTextLastSprite) - this._getLetterPosXLeft(curTextFirstSprite);
444
+ },
445
+
446
+ _checkWarp:function (strArr, i, maxWidth, initStringWrapNum) {
447
+ var self = this;
448
+ var text = strArr[i];
449
+ var curLength = 0;
450
+ for (var strArrIndex = 0; strArrIndex < i; strArrIndex++)
451
+ {
452
+ curLength += strArr[strArrIndex].length;
453
+ }
454
+
455
+ curLength = curLength + i - initStringWrapNum; // add the wrap line num
456
+
457
+ var allWidth = self._getCharsWidth(curLength, strArr[i].length - 1);
458
+
459
+ if (allWidth > maxWidth && text.length > 1) {
460
+ var fuzzyLen = text.length * ( maxWidth / allWidth ) | 0;
461
+ var tmpText = text.substr(fuzzyLen);
462
+ var width = allWidth - this._getCharsWidth(curLength + fuzzyLen, tmpText.length - 1);
463
+ var sLine;
464
+ var pushNum = 0;
465
+
466
+ //Increased while cycle maximum ceiling. default 100 time
467
+ var checkWhile = 0;
468
+
469
+ //Exceeded the size
470
+ while (width > maxWidth && checkWhile++ < 100) {
471
+ fuzzyLen *= maxWidth / width;
472
+ fuzzyLen = fuzzyLen | 0;
473
+ tmpText = text.substr(fuzzyLen);
474
+ width = allWidth - this._getCharsWidth(curLength + fuzzyLen, tmpText.length - 1);
475
+ }
476
+
477
+ checkWhile = 0;
478
+
479
+ //Find the truncation point
480
+ while (width < maxWidth && checkWhile++ < 100) {
481
+ if (tmpText) {
482
+ var exec = cc.LabelTTF._wordRex.exec(tmpText);
483
+ pushNum = exec ? exec[0].length : 1;
484
+ sLine = tmpText;
485
+ }
486
+ if (self._lineBreakWithoutSpaces) {
487
+ pushNum = 0;
488
+ }
489
+ fuzzyLen = fuzzyLen + pushNum;
490
+ tmpText = text.substr(fuzzyLen);
491
+ width = allWidth - this._getCharsWidth(curLength + fuzzyLen, tmpText.length - 1);
492
+ }
493
+
494
+ fuzzyLen -= pushNum;
495
+ if (fuzzyLen === 0) {
496
+ fuzzyLen = 1;
497
+ sLine = sLine.substr(1);
498
+ }
499
+
500
+ var sText = text.substr(0, fuzzyLen), result;
501
+
502
+ //symbol in the first
503
+ if (cc.LabelTTF.wrapInspection) {
504
+ if (cc.LabelTTF._symbolRex.test(sLine || tmpText)) {
505
+ result = cc.LabelTTF._lastWordRex.exec(sText);
506
+ pushNum = result ? result[0].length : 0;
507
+ if (self._lineBreakWithoutSpaces) {
508
+ pushNum = 0;
509
+ }
510
+ fuzzyLen -= pushNum;
511
+
512
+ sLine = text.substr(fuzzyLen);
513
+ sText = text.substr(0, fuzzyLen);
514
+ }
515
+ }
516
+
517
+ //To judge whether a English words are truncated
518
+ if (cc.LabelTTF._firsrEnglish.test(sLine)) {
519
+ result = cc.LabelTTF._lastEnglish.exec(sText);
520
+ if (result && sText !== result[0]) {
521
+ pushNum = result[0].length;
522
+ if (self._lineBreakWithoutSpaces) {
523
+ pushNum = 0;
524
+ }
525
+ fuzzyLen -= pushNum;
526
+ sLine = text.substr(fuzzyLen);
527
+ sText = text.substr(0, fuzzyLen);
528
+ }
529
+ }
530
+ strArr[i] = sLine || tmpText;
531
+ strArr.splice(i, 0, sText);
532
+ }
533
+ },
534
+
535
+ /**
536
+ * Update Label. <br />
537
+ * Update this Label display string and more...
538
+ */
539
+ updateLabel: function () {
540
+ var self = this;
541
+ self.string = self._initialString;
542
+ // process string
543
+ // Step 1: Make multiline
544
+ if (self._width > 0) {
545
+ var stringArr = self.string.split('\n');
546
+ var wrapString = "";
547
+ var newWrapNum = 0;
548
+ var oldArrLength = 0;
549
+ for (i = 0; i < stringArr.length; i++) {
550
+ oldArrLength = stringArr.length;
551
+ this._checkWarp(stringArr, i, self._width * this._scaleX, newWrapNum);
552
+ if (oldArrLength < stringArr.length)
553
+ {
554
+ newWrapNum++;
555
+ }
556
+ if (i > 0)
557
+ {
558
+ wrapString += "\n";
559
+ }
560
+ wrapString += stringArr[i];
561
+ }
562
+ wrapString = wrapString + String.fromCharCode(0);
563
+ self._setString(wrapString, false);
564
+ }
565
+
566
+ // Step 2: Make alignment
567
+ if (self._alignment != cc.TEXT_ALIGNMENT_LEFT) {
568
+ i = 0;
569
+
570
+ var lineNumber = 0;
571
+ var strlen = self._string.length;
572
+ var last_line = [];
573
+
574
+ for (var ctr = 0; ctr < strlen; ctr++) {
575
+ if (self._string[ctr].charCodeAt(0) == 10 || self._string[ctr].charCodeAt(0) == 0) {
576
+ var lineWidth = 0;
577
+ var line_length = last_line.length;
578
+ // if last line is empty we must just increase lineNumber and work with next line
579
+ if (line_length == 0) {
580
+ lineNumber++;
581
+ continue;
582
+ }
583
+ var index = i + line_length - 1 + lineNumber;
584
+ if (index < 0) continue;
585
+
586
+ var lastChar = self.getChildByTag(index);
587
+ if (lastChar == null)
588
+ continue;
589
+ lineWidth = lastChar.getPositionX() + lastChar._getWidth() / 2;
590
+
591
+ var shift = 0;
592
+ switch (self._alignment) {
593
+ case cc.TEXT_ALIGNMENT_CENTER:
594
+ shift = self.width / 2 - lineWidth / 2;
595
+ break;
596
+ case cc.TEXT_ALIGNMENT_RIGHT:
597
+ shift = self.width - lineWidth;
598
+ break;
599
+ default:
600
+ break;
601
+ }
602
+
603
+ if (shift != 0) {
604
+ for (j = 0; j < line_length; j++) {
605
+ index = i + j + lineNumber;
606
+ if (index < 0) continue;
607
+ characterSprite = self.getChildByTag(index);
608
+ if (characterSprite)
609
+ characterSprite.x += shift;
610
+ }
611
+ }
612
+
613
+ i += line_length;
614
+ lineNumber++;
615
+
616
+ last_line.length = 0;
617
+ continue;
618
+ }
619
+ last_line.push(self._string[i]);
620
+ }
621
+ }
622
+ },
623
+
624
+ /**
625
+ * Set text alignment.
626
+ * @param {Number} alignment
627
+ */
628
+ setAlignment: function (alignment) {
629
+ this._alignment = alignment;
630
+ this.updateLabel();
631
+ },
632
+
633
+ _getAlignment: function () {
634
+ return this._alignment;
635
+ },
636
+
637
+ /**
638
+ * Set the bounding width. <br />
639
+ * max with display width. The exceeding string will be wrapping.
640
+ * @param {Number} width
641
+ */
642
+ setBoundingWidth: function (width) {
643
+ this._width = width;
644
+ this.updateLabel();
645
+ },
646
+
647
+ _getBoundingWidth: function () {
648
+ return this._width;
649
+ },
650
+
651
+ /**
652
+ * Set the param to change English word warp according to whether the space. <br />
653
+ * default is false.
654
+ * @param {Boolean} breakWithoutSpace
655
+ */
656
+ setLineBreakWithoutSpace: function (breakWithoutSpace) {
657
+ this._lineBreakWithoutSpaces = breakWithoutSpace;
658
+ this.updateLabel();
659
+ },
660
+
661
+ /**
662
+ * Set scale. <br />
663
+ * Input a number, will be decrease or increase the font size. <br />
664
+ * @param {Number} scale
665
+ * @param {Number} [scaleY=null] default is scale
666
+ */
667
+ setScale: function (scale, scaleY) {
668
+ cc.Node.prototype.setScale.call(this, scale, scaleY);
669
+ this.updateLabel();
670
+ },
671
+
672
+ /**
673
+ * Set scale of x. <br />
674
+ * Input a number, will be decrease or increase the font size. <br />
675
+ * Horizontal scale.
676
+ * @param {Number} scaleX
677
+ */
678
+ setScaleX: function (scaleX) {
679
+ cc.Node.prototype.setScaleX.call(this, scaleX);
680
+ this.updateLabel();
681
+ },
682
+
683
+ /**
684
+ * Set scale of x. <br />
685
+ * Input a number, will be decrease or increase the font size. <br />
686
+ * Longitudinal scale.
687
+ * @param {Number} scaleY
688
+ */
689
+ setScaleY: function (scaleY) {
690
+ cc.Node.prototype.setScaleY.call(this, scaleY);
691
+ this.updateLabel();
692
+ },
693
+
694
+ /**
695
+ * set fnt file path. <br />
696
+ * Change the fnt file path.
697
+ * @param {String} fntFile
698
+ */
699
+ setFntFile: function (fntFile) {
700
+ var self = this;
701
+ if (fntFile != null && fntFile != self._fntFile) {
702
+ var newConf = cc.loader.getRes(fntFile);
703
+
704
+ if (!newConf) {
705
+ cc.log("cc.LabelBMFont.setFntFile() : Impossible to create font. Please check file");
706
+ return;
707
+ }
708
+
709
+ self._fntFile = fntFile;
710
+ self._config = newConf;
711
+
712
+ var texture = cc.textureCache.addImage(newConf.atlasName);
713
+ var locIsLoaded = texture.isLoaded();
714
+ self._textureLoaded = locIsLoaded;
715
+ self.texture = texture;
716
+ this._renderCmd._updateFntFileTexture();
717
+ if (!locIsLoaded) {
718
+ texture.addEventListener("load", function (sender) {
719
+ var self1 = this;
720
+ self1._textureLoaded = true;
721
+ self1.texture = sender;
722
+ self1.createFontChars();
723
+ self1._changeTextureColor();
724
+ self1.updateLabel();
725
+
726
+ self1.dispatchEvent("load");
727
+ }, self);
728
+ } else {
729
+ self.createFontChars();
730
+ }
731
+ }
732
+ },
733
+
734
+ /**
735
+ * Return the fnt file path.
736
+ * @return {String}
737
+ */
738
+ getFntFile: function () {
739
+ return this._fntFile;
740
+ },
741
+
742
+ setTexture: function(texture){
743
+ this._renderCmd.setTexture(texture);
744
+ },
745
+
746
+ /**
747
+ * Set the AnchorPoint of the labelBMFont. <br />
748
+ * In order to change the location of label.
749
+ * @override
750
+ * @param {cc.Point|Number} point The anchor point of labelBMFont or The anchor point.x of labelBMFont.
751
+ * @param {Number} [y] The anchor point.y of labelBMFont.
752
+ */
753
+ setAnchorPoint: function (point, y) {
754
+ cc.Node.prototype.setAnchorPoint.call(this, point, y);
755
+ this.updateLabel();
756
+ },
757
+
758
+ _setAnchorX: function (x) {
759
+ cc.Node.prototype._setAnchorX.call(this, x);
760
+ this.updateLabel();
761
+ },
762
+
763
+ _setAnchorY: function (y) {
764
+ cc.Node.prototype._setAnchorY.call(this, y);
765
+ this.updateLabel();
766
+ },
767
+
768
+ _atlasNameFromFntFile: function (fntFile) {},
769
+
770
+ _kerningAmountForFirst: function (first, second) {
771
+ var ret = 0;
772
+ var key = (first << 16) | (second & 0xffff);
773
+ if (this._configuration.kerningDictionary) {
774
+ var element = this._configuration.kerningDictionary[key.toString()];
775
+ if (element)
776
+ ret = element.amount;
777
+ }
778
+ return ret;
779
+ },
780
+
781
+ _getLetterPosXLeft: function (sp) {
782
+ return sp.getPositionX() * this._scaleX - (sp._getWidth() * this._scaleX * sp._getAnchorX());
783
+ },
784
+
785
+ _getLetterPosXRight: function (sp) {
786
+ return sp.getPositionX() * this._scaleX + (sp._getWidth() * this._scaleX * sp._getAnchorX());
787
+ },
788
+
789
+ //Checking whether the character is a whitespace
790
+ _isspace_unicode: function(ch){
791
+ ch = ch.charCodeAt(0);
792
+ return ((ch >= 9 && ch <= 13) || ch == 32 || ch == 133 || ch == 160 || ch == 5760
793
+ || (ch >= 8192 && ch <= 8202) || ch == 8232 || ch == 8233 || ch == 8239
794
+ || ch == 8287 || ch == 12288)
795
+ },
796
+
797
+ _utf8_trim_ws: function(str){
798
+ var len = str.length;
799
+
800
+ if (len <= 0)
801
+ return;
802
+
803
+ var last_index = len - 1;
804
+
805
+ // Only start trimming if the last character is whitespace..
806
+ if (this._isspace_unicode(str[last_index])) {
807
+ for (var i = last_index - 1; i >= 0; --i) {
808
+ if (this._isspace_unicode(str[i])) {
809
+ last_index = i;
810
+ }
811
+ else {
812
+ break;
813
+ }
814
+ }
815
+ this._utf8_trim_from(str, last_index);
816
+ }
817
+ },
818
+
819
+ //Trims str st str=[0, index) after the operation.
820
+ //Return value: the trimmed string.
821
+ _utf8_trim_from: function(str, index){
822
+ var len = str.length;
823
+ if (index >= len || index < 0)
824
+ return;
825
+ str.splice(index, len);
826
+ }
827
+ });
828
+
829
+ (function(){
830
+ var p = cc.LabelBMFont.prototype;
831
+ cc.EventHelper.prototype.apply(p);
832
+
833
+ /** @expose */
834
+ p.string;
835
+ cc.defineGetterSetter(p, "string", p.getString, p._setStringForSetter);
836
+ /** @expose */
837
+ p.boundingWidth;
838
+ cc.defineGetterSetter(p, "boundingWidth", p._getBoundingWidth, p.setBoundingWidth);
839
+ /** @expose */
840
+ p.textAlign;
841
+ cc.defineGetterSetter(p, "textAlign", p._getAlignment, p.setAlignment);
842
+ })();
843
+
844
+ /**
845
+ * creates a bitmap font atlas with an initial string and the FNT file
846
+ * @deprecated since v3.0 please use new cc.LabelBMFont
847
+ * @param {String} str
848
+ * @param {String} fntFile
849
+ * @param {Number} [width=-1]
850
+ * @param {Number} [alignment=cc.TEXT_ALIGNMENT_LEFT]
851
+ * @param {cc.Point} [imageOffset=cc.p(0,0)]
852
+ * @return {cc.LabelBMFont|Null}
853
+ */
854
+ cc.LabelBMFont.create = function (str, fntFile, width, alignment, imageOffset) {
855
+ return new cc.LabelBMFont(str, fntFile, width, alignment, imageOffset);
856
+ };
857
+
858
+ cc._fntLoader = {
859
+ INFO_EXP: /info [^\n]*(\n|$)/gi,
860
+ COMMON_EXP: /common [^\n]*(\n|$)/gi,
861
+ PAGE_EXP: /page [^\n]*(\n|$)/gi,
862
+ CHAR_EXP: /char [^\n]*(\n|$)/gi,
863
+ KERNING_EXP: /kerning [^\n]*(\n|$)/gi,
864
+ ITEM_EXP: /\w+=[^ \r\n]+/gi,
865
+ INT_EXP: /^[\-]?\d+$/,
866
+
867
+ _parseStrToObj: function (str) {
868
+ var arr = str.match(this.ITEM_EXP);
869
+ var obj = {};
870
+ if (arr) {
871
+ for (var i = 0, li = arr.length; i < li; i++) {
872
+ var tempStr = arr[i];
873
+ var index = tempStr.indexOf("=");
874
+ var key = tempStr.substring(0, index);
875
+ var value = tempStr.substring(index + 1);
876
+ if (value.match(this.INT_EXP)) value = parseInt(value);
877
+ else if (value[0] == '"') value = value.substring(1, value.length - 1);
878
+ obj[key] = value;
879
+ }
880
+ }
881
+ return obj;
882
+ },
883
+
884
+ /**
885
+ * Parse Fnt string.
886
+ * @param fntStr
887
+ * @param url
888
+ * @returns {{}}
889
+ */
890
+ parseFnt: function (fntStr, url) {
891
+ var self = this, fnt = {};
892
+ //padding
893
+ var infoObj = self._parseStrToObj(fntStr.match(self.INFO_EXP)[0]);
894
+ var paddingArr = infoObj["padding"].split(",");
895
+ var padding = {
896
+ left: parseInt(paddingArr[0]),
897
+ top: parseInt(paddingArr[1]),
898
+ right: parseInt(paddingArr[2]),
899
+ bottom: parseInt(paddingArr[3])
900
+ };
901
+
902
+ //common
903
+ var commonObj = self._parseStrToObj(fntStr.match(self.COMMON_EXP)[0]);
904
+ fnt.commonHeight = commonObj["lineHeight"];
905
+ if (cc._renderType === cc._RENDER_TYPE_WEBGL) {
906
+ var texSize = cc.configuration.getMaxTextureSize();
907
+ if (commonObj["scaleW"] > texSize.width || commonObj["scaleH"] > texSize.height)
908
+ cc.log("cc.LabelBMFont._parseCommonArguments(): page can't be larger than supported");
909
+ }
910
+ if (commonObj["pages"] !== 1) cc.log("cc.LabelBMFont._parseCommonArguments(): only supports 1 page");
911
+
912
+ //page
913
+ var pageObj = self._parseStrToObj(fntStr.match(self.PAGE_EXP)[0]);
914
+ if (pageObj["id"] !== 0) cc.log("cc.LabelBMFont._parseImageFileName() : file could not be found");
915
+ fnt.atlasName = cc.path.changeBasename(url, pageObj["file"]);
916
+
917
+ //char
918
+ var charLines = fntStr.match(self.CHAR_EXP);
919
+ var fontDefDictionary = fnt.fontDefDictionary = {};
920
+ for (var i = 0, li = charLines.length; i < li; i++) {
921
+ var charObj = self._parseStrToObj(charLines[i]);
922
+ var charId = charObj["id"];
923
+ fontDefDictionary[charId] = {
924
+ rect: {x: charObj["x"], y: charObj["y"], width: charObj["width"], height: charObj["height"]},
925
+ xOffset: charObj["xoffset"],
926
+ yOffset: charObj["yoffset"],
927
+ xAdvance: charObj["xadvance"]
928
+ };
929
+ }
930
+
931
+ //kerning
932
+ var kerningDict = fnt.kerningDict = {};
933
+ var kerningLines = fntStr.match(self.KERNING_EXP);
934
+ if (kerningLines) {
935
+ for (var i = 0, li = kerningLines.length; i < li; i++) {
936
+ var kerningObj = self._parseStrToObj(kerningLines[i]);
937
+ kerningDict[(kerningObj["first"] << 16) | (kerningObj["second"] & 0xffff)] = kerningObj["amount"];
938
+ }
939
+ }
940
+ return fnt;
941
+ },
942
+
943
+ /**
944
+ * load the fnt
945
+ * @param realUrl
946
+ * @param url
947
+ * @param res
948
+ * @param cb
949
+ */
950
+ load: function (realUrl, url, res, cb) {
951
+ var self = this;
952
+ cc.loader.loadTxt(realUrl, function (err, txt) {
953
+ if (err) return cb(err);
954
+ cb(null, self.parseFnt(txt, url));
955
+ });
956
+ }
957
+ };
958
+ cc.loader.register(["fnt"], cc._fntLoader);