joybox 1.0.0 → 1.1.0

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 (353) hide show
  1. data/.travis.yml +3 -0
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +4 -4
  4. data/README.md +66 -22
  5. data/Rakefile +22 -4
  6. data/app/ios/app_delegate.rb +48 -0
  7. data/app/osx/app_delegate.rb +26 -0
  8. data/app/osx/layers/game_layer.rb +5 -0
  9. data/app/osx/menu.rb +51 -0
  10. data/command/command/image.rb +26 -0
  11. data/command/command/string.rb +15 -0
  12. data/command/command/template.rb +59 -0
  13. data/command/command/tmx.rb +75 -0
  14. data/command/joybox_generate_command.rb +64 -110
  15. data/command/joybox_retina_command.rb +87 -0
  16. data/command/{joybox/templates → templates}/layer.erb +0 -0
  17. data/command/{joybox/templates → templates}/layer_spec.erb +0 -0
  18. data/command/{joybox/templates → templates}/scene.erb +0 -0
  19. data/command/{joybox/templates → templates}/scene_spec.erb +0 -0
  20. data/command/{joybox/templates → templates}/sprite.erb +0 -0
  21. data/command/{joybox/templates → templates}/sprite_spec.erb +0 -0
  22. data/ext/extconf.rb +34 -0
  23. data/joybox.gemspec +103 -50
  24. data/lib/joybox.rb +2 -0
  25. data/lib/joybox/joybox-ios.rb +18 -3
  26. data/lib/joybox/joybox-osx.rb +18 -2
  27. data/lib/joybox/version.rb +1 -1
  28. data/motion/joybox-ios/common/cg_point.rb +46 -16
  29. data/motion/joybox-ios/common/device.rb +56 -0
  30. data/motion/joybox-ios/common/ui_touch.rb +0 -2
  31. data/motion/joybox-ios/configuration/configuration.rb +10 -40
  32. data/motion/joybox-ios/configuration/file_utils.rb +0 -4
  33. data/motion/joybox-ios/configuration/gl_view.rb +14 -20
  34. data/motion/joybox-ios/configuration/texture_2d.rb +0 -4
  35. data/motion/joybox-ios/core/layer.rb +2 -8
  36. data/motion/joybox-ios/debug/proxy_view.rb +5 -5
  37. data/motion/joybox-ios/debug/{node.rb → repl.rb} +25 -19
  38. data/motion/joybox-ios/director.rb +15 -4
  39. data/motion/joybox-osx/common/ats_point.rb +45 -15
  40. data/motion/joybox-osx/common/device.rb +30 -0
  41. data/motion/joybox-osx/common/ns_event.rb +0 -1
  42. data/motion/joybox-osx/configuration/configuration.rb +6 -26
  43. data/motion/joybox-osx/configuration/gl_view.rb +16 -14
  44. data/motion/joybox-osx/core/layer.rb +45 -26
  45. data/motion/joybox-osx/debug/proxy_view.rb +5 -5
  46. data/motion/joybox-osx/debug/{node.rb → repl.rb} +13 -7
  47. data/motion/joybox-osx/director.rb +4 -3
  48. data/motion/joybox/actions/animate.rb +0 -1
  49. data/motion/joybox/actions/bezier.rb +2 -9
  50. data/motion/joybox/actions/blink.rb +1 -4
  51. data/motion/joybox/actions/callback.rb +19 -0
  52. data/motion/joybox/actions/d3/flip.rb +27 -0
  53. data/motion/joybox/actions/d3/jump.rb +30 -0
  54. data/motion/joybox/actions/d3/lens.rb +30 -0
  55. data/motion/joybox/actions/d3/shake.rb +32 -0
  56. data/motion/joybox/actions/d3/shatter.rb +30 -0
  57. data/motion/joybox/actions/d3/wave.rb +33 -0
  58. data/motion/joybox/actions/delay.rb +19 -0
  59. data/motion/joybox/actions/ease.rb +3 -21
  60. data/motion/joybox/actions/fade.rb +30 -6
  61. data/motion/joybox/actions/jump.rb +0 -5
  62. data/motion/joybox/actions/liquid.rb +28 -0
  63. data/motion/joybox/actions/move.rb +2 -9
  64. data/motion/joybox/actions/place.rb +0 -2
  65. data/motion/joybox/actions/repeat.rb +0 -2
  66. data/motion/joybox/actions/rotate.rb +2 -9
  67. data/motion/joybox/actions/scale.rb +2 -9
  68. data/motion/joybox/actions/sequence.rb +0 -1
  69. data/motion/joybox/actions/shuffle.rb +26 -0
  70. data/motion/joybox/actions/skew.rb +2 -11
  71. data/motion/joybox/actions/spawn.rb +0 -1
  72. data/motion/joybox/actions/split.rb +24 -0
  73. data/motion/joybox/actions/tint.rb +0 -5
  74. data/motion/joybox/actions/turn.rb +24 -0
  75. data/motion/joybox/actions/twirl.rb +30 -0
  76. data/motion/joybox/actions/visibility.rb +21 -0
  77. data/motion/joybox/actions/wave.rb +32 -0
  78. data/motion/joybox/animations/animation.rb +7 -11
  79. data/motion/joybox/audio/audio.rb +31 -0
  80. data/motion/joybox/audio/audio_effect.rb +69 -0
  81. data/motion/joybox/audio/background_audio.rb +77 -0
  82. data/motion/joybox/common/{gc_size.rb → cg_size.rb} +13 -12
  83. data/motion/joybox/common/color.rb +4 -13
  84. data/motion/joybox/common/initialize.rb +11 -0
  85. data/motion/joybox/common/ns_array.rb +15 -0
  86. data/motion/joybox/common/ns_string.rb +7 -0
  87. data/motion/joybox/common/numeric.rb +13 -4
  88. data/motion/joybox/common/screen.rb +4 -12
  89. data/motion/joybox/configuration/debug.rb +29 -0
  90. data/motion/joybox/core/layer.rb +0 -24
  91. data/motion/joybox/core/layer_color.rb +47 -0
  92. data/motion/joybox/core/node.rb +18 -8
  93. data/motion/joybox/core/scene.rb +0 -5
  94. data/motion/joybox/core/sprite.rb +43 -25
  95. data/motion/joybox/core/sprite_batch.rb +15 -6
  96. data/motion/joybox/core/sprite_frame_cache.rb +9 -58
  97. data/motion/joybox/debug/physics.rb +40 -0
  98. data/motion/joybox/debug/physics_draw.rb +191 -0
  99. data/motion/joybox/joybox.rb +9 -1
  100. data/motion/joybox/macros.rb +13 -13
  101. data/motion/joybox/physics/aabb.rb +28 -0
  102. data/motion/joybox/physics/body.rb +163 -68
  103. data/motion/joybox/physics/chain_shape.rb +71 -0
  104. data/motion/joybox/physics/circle_shape.rb +31 -0
  105. data/motion/joybox/physics/edge_shape.rb +37 -0
  106. data/motion/joybox/physics/filter.rb +17 -0
  107. data/motion/joybox/physics/fixture.rb +52 -0
  108. data/motion/joybox/physics/mass_data.rb +19 -0
  109. data/motion/joybox/physics/physics_sprite.rb +50 -16
  110. data/motion/joybox/physics/polygon_shape.rb +54 -0
  111. data/motion/joybox/physics/profile.rb +14 -0
  112. data/motion/joybox/physics/ray_cast_input.rb +30 -0
  113. data/motion/joybox/physics/ray_cast_output.rb +17 -0
  114. data/motion/joybox/physics/shape.rb +61 -0
  115. data/motion/joybox/physics/transform.rb +17 -0
  116. data/motion/joybox/physics/world.rb +101 -30
  117. data/motion/joybox/tmx/object_layer.rb +12 -0
  118. data/motion/joybox/tmx/tile_layer.rb +74 -0
  119. data/motion/joybox/tmx/tile_map.rb +112 -0
  120. data/motion/joybox/tmx/tile_set.rb +26 -0
  121. data/motion/joybox/tmx/tmx.rb +16 -0
  122. data/motion/joybox/ui/label.rb +44 -16
  123. data/motion/joybox/ui/menu.rb +7 -9
  124. data/motion/joybox/ui/menu_image.rb +11 -8
  125. data/motion/joybox/ui/menu_label.rb +14 -13
  126. data/resources/Default-568h@2x.png +0 -0
  127. data/resources/animation_frames-hd.plist +126 -0
  128. data/resources/animation_frames-ipadhd.plist +126 -0
  129. data/resources/animation_frames.plist +126 -0
  130. data/resources/animation_sprite_sheet-hd.png +0 -0
  131. data/resources/animation_sprite_sheet-ipadhd.png +0 -0
  132. data/resources/animation_sprite_sheet.png +0 -0
  133. data/resources/fps_images-hd.png +0 -0
  134. data/resources/fps_images-ipadhd.png +0 -0
  135. data/resources/fps_images.png +0 -0
  136. data/resources/sprite.png +0 -0
  137. data/resources/sprite_inverted.png +0 -0
  138. data/resources/sprite_sheet.png +0 -0
  139. data/spec/motion/joybox-ios/common/screen_spec.rb +21 -0
  140. data/spec/{main_spec.rb → motion/joybox-ios/main_spec.rb} +6 -2
  141. data/spec/motion/joybox-ios/ui/label_spec.rb +20 -0
  142. data/spec/motion/joybox-ios/ui/menu_label_spec.rb +15 -0
  143. data/spec/motion/joybox-ios/ui/menu_spec.rb +87 -0
  144. data/spec/motion/joybox-osx/common/screen_spec.rb +21 -0
  145. data/spec/motion/joybox-osx/main_spec.rb +13 -0
  146. data/spec/motion/joybox-osx/ui/label_spec.rb +18 -0
  147. data/spec/motion/joybox-osx/ui/menu_label_spec.rb +13 -0
  148. data/spec/motion/joybox-osx/ui/menu_spec.rb +87 -0
  149. data/spec/motion/joybox/actions/actions_spec.rb +11 -0
  150. data/spec/motion/joybox/actions/bezier_spec.rb +37 -0
  151. data/spec/motion/joybox/actions/blink_spec.rb +16 -0
  152. data/spec/motion/joybox/actions/fade_spec.rb +49 -0
  153. data/spec/motion/joybox/actions/jump_spec.rb +37 -0
  154. data/spec/motion/joybox/actions/move_spec.rb +37 -0
  155. data/spec/motion/joybox/actions/place_spec.rb +12 -0
  156. data/spec/motion/joybox/actions/rotate_spec.rb +35 -0
  157. data/spec/motion/joybox/actions/scale_spec.rb +43 -0
  158. data/spec/motion/joybox/actions/skew_spec.rb +43 -0
  159. data/spec/motion/joybox/common/cg_size_spec.rb +29 -0
  160. data/spec/motion/joybox/common/color_spec.rb +31 -0
  161. data/spec/motion/joybox/common/ns_string_spec.rb +8 -0
  162. data/spec/motion/joybox/common/numeric_spec.rb +13 -0
  163. data/spec/motion/joybox/core/node_spec.rb +36 -0
  164. data/spec/motion/joybox/core/sprite_batch_spec.rb +34 -0
  165. data/spec/motion/joybox/core/sprite_frame_cache_spec.rb +111 -0
  166. data/spec/motion/joybox/core/sprite_spec.rb +121 -0
  167. data/spec/motion/joybox/macros_spec.rb +280 -0
  168. data/spec/motion/joybox/physics/aabb_spec.rb +17 -0
  169. data/spec/motion/joybox/physics/body_spec.rb +318 -0
  170. data/spec/motion/joybox/physics/chain_shape_spec.rb +80 -0
  171. data/spec/motion/joybox/physics/circle_shape_spec.rb +63 -0
  172. data/spec/motion/joybox/physics/edge_shape_spec.rb +48 -0
  173. data/spec/motion/joybox/physics/fixture_spec.rb +106 -0
  174. data/spec/motion/joybox/physics/mass_data_spec.rb +13 -0
  175. data/spec/motion/joybox/physics/physics_sprite_spec.rb +50 -0
  176. data/spec/motion/joybox/physics/polygon_shape_spec.rb +92 -0
  177. data/spec/motion/joybox/physics/ray_cast_input_spec.rb +17 -0
  178. data/spec/motion/joybox/physics/ray_cast_output_spec.rb +13 -0
  179. data/spec/motion/joybox/physics/shape_spec.rb +50 -0
  180. data/spec/motion/joybox/physics/transform_spec.rb +13 -0
  181. data/spec/motion/joybox/physics/world_spec.rb +228 -0
  182. data/spec/motion/joybox/ui/label_spec.rb +53 -0
  183. data/spec/motion/joybox/ui/menu_image_spec.rb +51 -0
  184. data/spec/motion/joybox/ui/menu_label_spec.rb +68 -0
  185. data/spec/motion/joybox/ui/menu_spec.rb +26 -0
  186. data/spec/spec_helpers/cg_point.rb +5 -0
  187. data/spec/spec_helpers/cg_point_spec.rb +14 -0
  188. data/template/joybox-ios-example-repl/files/.gitignore +16 -0
  189. data/template/joybox-ios/files/.gitignore +16 -0
  190. data/template/joybox-osx-example-repl/files/.gitignore +16 -0
  191. data/template/joybox-osx/files/.gitignore +16 -0
  192. data/vendor/vendor-ios/box_2d/box_2d.bridgesupport +1201 -85
  193. data/vendor/vendor-ios/box_2d/box_2d_include/B2DAABB.h +21 -0
  194. data/vendor/vendor-ios/box_2d/box_2d_include/B2DBody.h +58 -13
  195. data/vendor/vendor-ios/box_2d/box_2d_include/B2DBodyDef.h +44 -0
  196. data/vendor/vendor-ios/box_2d/box_2d_include/B2DBodyTypes.h +20 -0
  197. data/vendor/vendor-ios/box_2d/box_2d_include/B2DChainShape.h +29 -0
  198. data/vendor/vendor-ios/box_2d/box_2d_include/B2DCircleShape.h +7 -0
  199. data/vendor/vendor-ios/box_2d/box_2d_include/B2DColor.h +23 -0
  200. data/vendor/vendor-ios/box_2d/box_2d_include/B2DContactFilter.h +24 -0
  201. data/vendor/vendor-ios/box_2d/box_2d_include/B2DContactListener.h +1 -1
  202. data/vendor/vendor-ios/box_2d/box_2d_include/B2DDestructionListener.h +24 -0
  203. data/vendor/vendor-ios/box_2d/box_2d_include/B2DDraw.h +54 -0
  204. data/vendor/vendor-ios/box_2d/box_2d_include/B2DEdgeShape.h +13 -2
  205. data/vendor/vendor-ios/box_2d/box_2d_include/B2DFilter.h +23 -0
  206. data/vendor/vendor-ios/box_2d/box_2d_include/B2DFixture.h +47 -0
  207. data/vendor/vendor-ios/box_2d/box_2d_include/B2DFixtureDef.h +29 -0
  208. data/vendor/vendor-ios/box_2d/box_2d_include/B2DMassData.h +23 -0
  209. data/vendor/vendor-ios/box_2d/box_2d_include/B2DPolygonShape.h +14 -1
  210. data/vendor/vendor-ios/box_2d/box_2d_include/B2DProfile.h +31 -0
  211. data/vendor/vendor-ios/box_2d/box_2d_include/B2DQueryCallback.h +24 -0
  212. data/vendor/vendor-ios/box_2d/box_2d_include/B2DRayCastCallback.h +24 -0
  213. data/vendor/vendor-ios/box_2d/box_2d_include/B2DRayCastInput.h +23 -0
  214. data/vendor/vendor-ios/box_2d/box_2d_include/B2DRayCastOutput.h +21 -0
  215. data/vendor/vendor-ios/box_2d/box_2d_include/B2DShape.h +23 -3
  216. data/vendor/vendor-ios/box_2d/box_2d_include/B2DShapeTypes.h +22 -0
  217. data/vendor/vendor-ios/box_2d/box_2d_include/B2DTransform.h +21 -0
  218. data/vendor/vendor-ios/box_2d/box_2d_include/B2DWorld.h +40 -19
  219. data/vendor/vendor-ios/box_2d/libBox2D.a +0 -0
  220. data/vendor/vendor-ios/cocos_2d/cocos_2d.bridgesupport +808 -1578
  221. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/CCActionEase.h +47 -0
  222. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/CCFontDefinition.h +85 -0
  223. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/CCLabelTTF.h +54 -6
  224. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/CCMenuItem.h +1 -0
  225. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/CCTMXLayer.h +2 -2
  226. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/CCTexture2D.h +4 -0
  227. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/ccTypes.h +51 -1
  228. data/vendor/vendor-ios/cocos_2d/libcocos2d.a +0 -0
  229. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader.bridgesupport +510 -0
  230. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader_include/CCBAnimationManager.h +149 -0
  231. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader_include/CCBKeyframe.h +40 -0
  232. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader_include/CCBReader.h +176 -0
  233. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader_include/CCBSequence.h +49 -0
  234. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader_include/CCBSequenceProperty.h +38 -0
  235. data/vendor/vendor-ios/cocos_builder_reader/cocos_builder_reader_include/CCNode+CCBRelativePositioning.h +65 -0
  236. data/vendor/vendor-ios/cocos_builder_reader/libCocosBuilderReader.a +0 -0
  237. data/vendor/vendor-ios/cocos_denshion/cocos_denshion.bridgesupport +1001 -0
  238. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/CDAudioManager.h +243 -0
  239. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/CDConfig.h +60 -0
  240. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/CDOpenALSupport.h +77 -0
  241. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/CDXMacOSXSupport.h +232 -0
  242. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/CDXPropertyModifierAction.h +45 -0
  243. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/CocosDenshion.h +440 -0
  244. data/vendor/vendor-ios/cocos_denshion/cocos_denshion_include/SimpleAudioEngine.h +90 -0
  245. data/vendor/vendor-ios/cocos_denshion/libCocosDenshion.a +0 -0
  246. data/vendor/vendor-ios/kazmath/kazmath.bridgesupport +865 -0
  247. data/vendor/vendor-ios/kazmath/kazmath_include/GL/mat4stack.h +51 -0
  248. data/vendor/vendor-ios/kazmath/kazmath_include/GL/matrix.h +58 -0
  249. data/vendor/vendor-ios/kazmath/kazmath_include/aabb.h +53 -0
  250. data/vendor/vendor-ios/kazmath/kazmath_include/kazmath.h +39 -0
  251. data/vendor/vendor-ios/kazmath/kazmath_include/mat3.h +75 -0
  252. data/vendor/vendor-ios/kazmath/kazmath_include/mat4.h +93 -0
  253. data/vendor/vendor-ios/kazmath/kazmath_include/neon_matrix_impl.h +41 -0
  254. data/vendor/vendor-ios/kazmath/kazmath_include/plane.h +70 -0
  255. data/vendor/vendor-ios/kazmath/kazmath_include/quaternion.h +113 -0
  256. data/vendor/vendor-ios/kazmath/kazmath_include/ray2.h +50 -0
  257. data/vendor/vendor-ios/kazmath/kazmath_include/utility.h +74 -0
  258. data/vendor/vendor-ios/kazmath/kazmath_include/vec2.h +64 -0
  259. data/vendor/vendor-ios/kazmath/kazmath_include/vec3.h +68 -0
  260. data/vendor/vendor-ios/kazmath/kazmath_include/vec4.h +68 -0
  261. data/vendor/vendor-ios/kazmath/libkazmath.a +0 -0
  262. data/vendor/vendor-osx/box_2d/box_2d.bridgesupport +1199 -83
  263. data/vendor/vendor-osx/box_2d/box_2d_include/B2DAABB.h +21 -0
  264. data/vendor/vendor-osx/box_2d/box_2d_include/B2DBody.h +58 -13
  265. data/vendor/vendor-osx/box_2d/box_2d_include/B2DBodyDef.h +44 -0
  266. data/vendor/vendor-osx/box_2d/box_2d_include/B2DBodyTypes.h +20 -0
  267. data/vendor/vendor-osx/box_2d/box_2d_include/B2DChainShape.h +29 -0
  268. data/vendor/vendor-osx/box_2d/box_2d_include/B2DCircleShape.h +7 -0
  269. data/vendor/vendor-osx/box_2d/box_2d_include/B2DColor.h +23 -0
  270. data/vendor/vendor-osx/box_2d/box_2d_include/B2DContactFilter.h +24 -0
  271. data/vendor/vendor-osx/box_2d/box_2d_include/B2DContactListener.h +1 -1
  272. data/vendor/vendor-osx/box_2d/box_2d_include/B2DDestructionListener.h +24 -0
  273. data/vendor/vendor-osx/box_2d/box_2d_include/B2DDraw.h +54 -0
  274. data/vendor/vendor-osx/box_2d/box_2d_include/B2DEdgeShape.h +13 -2
  275. data/vendor/vendor-osx/box_2d/box_2d_include/B2DFilter.h +23 -0
  276. data/vendor/vendor-osx/box_2d/box_2d_include/B2DFixture.h +47 -0
  277. data/vendor/vendor-osx/box_2d/box_2d_include/B2DFixtureDef.h +29 -0
  278. data/vendor/vendor-osx/box_2d/box_2d_include/B2DMassData.h +23 -0
  279. data/vendor/vendor-osx/box_2d/box_2d_include/B2DPolygonShape.h +14 -1
  280. data/vendor/vendor-osx/box_2d/box_2d_include/B2DProfile.h +31 -0
  281. data/vendor/vendor-osx/box_2d/box_2d_include/B2DQueryCallback.h +24 -0
  282. data/vendor/vendor-osx/box_2d/box_2d_include/B2DRayCastCallback.h +24 -0
  283. data/vendor/vendor-osx/box_2d/box_2d_include/B2DRayCastInput.h +23 -0
  284. data/vendor/vendor-osx/box_2d/box_2d_include/B2DRayCastOutput.h +21 -0
  285. data/vendor/vendor-osx/box_2d/box_2d_include/B2DShape.h +23 -3
  286. data/vendor/vendor-osx/box_2d/box_2d_include/B2DShapeTypes.h +22 -0
  287. data/vendor/vendor-osx/box_2d/box_2d_include/B2DTransform.h +21 -0
  288. data/vendor/vendor-osx/box_2d/box_2d_include/B2DWorld.h +40 -19
  289. data/vendor/vendor-osx/box_2d/libBox2D.a +0 -0
  290. data/vendor/vendor-osx/cocos_2d/cocos_2d.bridgesupport +2820 -2633
  291. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionEase.h +47 -0
  292. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCFontDefinition.h +85 -0
  293. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCLabelTTF.h +54 -6
  294. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCMenuItem.h +1 -0
  295. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTMXLayer.h +2 -2
  296. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTexture2D.h +4 -0
  297. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCDirectorIOS.h +111 -0
  298. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCES2Renderer.h +83 -0
  299. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCESRenderer.h +54 -0
  300. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCGLView.h +175 -0
  301. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCTouchDelegateProtocol.h +75 -0
  302. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCTouchDispatcher.h +120 -0
  303. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/iOS/CCTouchHandler.h +93 -0
  304. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccTypes.h +65 -1
  305. data/vendor/vendor-osx/cocos_2d/libcocos2d.a +0 -0
  306. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader.bridgesupport +510 -0
  307. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader_include/CCBAnimationManager.h +149 -0
  308. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader_include/CCBKeyframe.h +40 -0
  309. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader_include/CCBReader.h +176 -0
  310. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader_include/CCBSequence.h +49 -0
  311. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader_include/CCBSequenceProperty.h +38 -0
  312. data/vendor/vendor-osx/cocos_builder_reader/cocos_builder_reader_include/CCNode+CCBRelativePositioning.h +65 -0
  313. data/vendor/vendor-osx/cocos_builder_reader/libCocosBuilderReader.a +0 -0
  314. data/vendor/vendor-osx/cocos_denshion/cocos_denshion.bridgesupport +1001 -0
  315. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/CDAudioManager.h +243 -0
  316. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/CDConfig.h +60 -0
  317. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/CDOpenALSupport.h +77 -0
  318. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/CDXMacOSXSupport.h +232 -0
  319. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/CDXPropertyModifierAction.h +45 -0
  320. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/CocosDenshion.h +440 -0
  321. data/vendor/vendor-osx/cocos_denshion/cocos_denshion_include/SimpleAudioEngine.h +90 -0
  322. data/vendor/vendor-osx/cocos_denshion/libCocosDenshion.a +0 -0
  323. data/vendor/vendor-osx/kazmath/kazmath.bridgesupport +865 -0
  324. data/vendor/vendor-osx/kazmath/kazmath_include/GL/mat4stack.h +51 -0
  325. data/vendor/vendor-osx/kazmath/kazmath_include/GL/matrix.h +58 -0
  326. data/vendor/vendor-osx/kazmath/kazmath_include/aabb.h +53 -0
  327. data/vendor/vendor-osx/kazmath/kazmath_include/kazmath.h +39 -0
  328. data/vendor/vendor-osx/kazmath/kazmath_include/mat3.h +75 -0
  329. data/vendor/vendor-osx/kazmath/kazmath_include/mat4.h +93 -0
  330. data/vendor/vendor-osx/kazmath/kazmath_include/neon_matrix_impl.h +41 -0
  331. data/vendor/vendor-osx/kazmath/kazmath_include/plane.h +70 -0
  332. data/vendor/vendor-osx/kazmath/kazmath_include/quaternion.h +113 -0
  333. data/vendor/vendor-osx/kazmath/kazmath_include/ray2.h +50 -0
  334. data/vendor/vendor-osx/kazmath/kazmath_include/utility.h +74 -0
  335. data/vendor/vendor-osx/kazmath/kazmath_include/vec2.h +64 -0
  336. data/vendor/vendor-osx/kazmath/kazmath_include/vec3.h +68 -0
  337. data/vendor/vendor-osx/kazmath/kazmath_include/vec4.h +68 -0
  338. data/vendor/vendor-osx/kazmath/libkazmath.a +0 -0
  339. metadata +353 -57
  340. checksums.yaml +0 -15
  341. data/bin/joybox +0 -49
  342. data/command/joybox/USAGE +0 -24
  343. data/motion/joybox-ios/configuration/debug.rb +0 -27
  344. data/motion/joybox-ios/debug/debug.rb +0 -10
  345. data/motion/joybox-osx/configuration/debug.rb +0 -27
  346. data/motion/joybox-osx/configuration/sprite_view.rb +0 -91
  347. data/motion/joybox-osx/debug/debug.rb +0 -10
  348. data/motion/joybox/core/ns_object.rb +0 -8
  349. data/spec/lib/joybox/cocos2d/cocos2d_spec.rb +0 -7
  350. data/spec/lib/joybox/cocos2d/macros_spec.rb +0 -37
  351. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/cocos2d-ios-exceptions.bridgesupport +0 -39
  352. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/gen_cocos2d_bridgesupport.sh +0 -17
  353. data/vendor/vendor-ios/cocos_2d/cocos_2d_include/gen_cocos2d_complement.sh +0 -17
@@ -1,114 +1,68 @@
1
- class String
2
-
3
- def underscore
4
- gsub(/::/, '/').
5
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
6
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
7
- tr("-", "_").
8
- downcase
9
- end
10
-
11
- def titleize
12
- gsub(/([A-Z])/, '_\1').split(/_/).map(&:capitalize).join
13
- end
14
-
15
- end
16
-
17
-
18
- module Motion; module Project
19
- class JoyboxGenerateCommand < Command
20
-
21
- self.name = 'joybox:generate'
22
- self.help = 'Joybox: Class Generator'
23
-
24
- attr_reader :name
25
-
26
- def run(args)
27
-
28
- if args.empty? or args.size != 2
29
- show_help
1
+ require 'optparse'
2
+ require File.expand_path('../command/string.rb', File.readlink(__FILE__))
3
+ require File.expand_path('../command/template.rb', File.readlink(__FILE__))
4
+
5
+ module Motion
6
+ module Project
7
+ class JoyboxGenerateCommand < Command
8
+
9
+ self.name = 'joybox:generate'
10
+ self.help = 'Joybox: Class Generator'
11
+
12
+ @@description = <<-EOF
13
+ Generates a new class according to the class type and name, those
14
+ parameters can be sended either CamelCased or snake_cased. Also a
15
+ test class will be generated and placed inside the spec folder.
16
+
17
+ Supported Classes: Sprite, Layer, Scene
18
+ EOF
19
+
20
+ @@example = <<-EOF
21
+ 'motion jb:generate layer game'
22
+
23
+ This will generate a Layer class named 'GameLayer' with the
24
+ following files:
25
+ class: 'app/layers/game_layer.rb'
26
+ spec: 'spec/layers/game_layer_spec.rb'
27
+
28
+ The list of posible paths according to the class type:
29
+ Sprite: app/sprites/ - spec/sprites/
30
+ Layer: app/layers/ - spec/layers/
31
+ Scene: app/scenes/ - spec/scenes/
32
+ EOF
33
+
34
+ def run(args)
35
+ opt_parser = OptionParser.new do |opt|
36
+ opt.banner = "Usage:"
37
+ opt.separator " motion joybox:generate <class-type> <file-name>"
38
+ opt.separator ""
39
+ opt.separator "Options:"
40
+
41
+ opt.on('-h', '--help', 'Shows this screen')
42
+
43
+ opt.separator ""
44
+ opt.separator "Description:"
45
+ opt.separator @@description
46
+ opt.separator ""
47
+ opt.separator "Example:"
48
+ opt.separator @@example
49
+ end
50
+
51
+ opt_parser.parse!
52
+ return puts opt_parser if args.size != 2
53
+
54
+ klass = args[0]
55
+ name = args[1]
56
+
57
+ case klass
58
+ when /(\bsprite\b|\blayer\b|\bscene\b)/i
59
+ template = Joybox::Command::Template.new(name, klass)
60
+ template.save
61
+ else
62
+ puts opt_parser
63
+ end
30
64
  end
31
65
 
32
- klass = args[0]
33
- name = args[1]
34
-
35
- template_class_file = File.expand_path("../joybox/templates/#{klass}.erb", __FILE__)
36
- template_spec_file = File.expand_path("../joybox/templates/#{klass}_spec.erb", __FILE__)
37
-
38
- unless File.exists?(template_class_file)
39
- show_help
40
- end
41
-
42
- begin
43
- app_directory = find_app_directory
44
- spec_directory = find_spec_directory
45
- rescue
46
- die 'The command needs to run inside of a RubyMotion project'
47
- end
48
-
49
- class_file = File.join(app_directory, "#{klass}s/#{name.underscore}_#{klass}.rb")
50
- test_file = File.join(spec_directory, "#{klass}s/#{name.underscore}_#{klass}_spec.rb")
51
-
52
- if File.exists?(class_file) or File.exists?(test_file)
53
- App.log 'Duplicate', "#{class_file} exists" if File.exists?(class_file)
54
- App.log 'Duplicate', "#{test_file} exists" if File.exists?(test_file)
55
- exit 1
56
- end
57
-
58
- create_directory(File.dirname(class_file))
59
- create_directory(File.dirname(test_file))
60
-
61
- @name = name.titleize
62
- create_file(class_file, template_class_file)
63
- create_file(test_file, template_spec_file)
64
66
  end
65
-
66
-
67
- def find_app_directory(directory = 'app')
68
-
69
- finded_directories = Dir.glob(directory)
70
-
71
- if finded_directories.size != 1
72
-
73
- find_app_directory(File.join('..', directory))
74
- else
75
-
76
- finded_directories[0]
77
- end
78
- end
79
-
80
-
81
- def find_spec_directory(directory = 'spec')
82
-
83
- finded_directories = Dir.glob(directory)
84
-
85
- if finded_directories.size != 1
86
-
87
- find_app_directory(File.join('..', directory))
88
- else
89
-
90
- finded_directories[0]
91
- end
92
- end
93
-
94
-
95
- def create_directory(directory)
96
- FileUtils.mkdir_p(directory) unless File.directory?(directory)
97
- end
98
-
99
-
100
- def create_file(file_path, template_path)
101
- File.open(file_path, "w") { |io|
102
- io.print ERB.new(File.read(template_path)).result(binding)
103
- }
104
- App.log 'Create', "#{file_path}"
105
- end
106
-
107
-
108
- def show_help
109
- usage_file = File.expand_path("../joybox/USAGE", __FILE__)
110
- die File.read(usage_file)
111
- end
112
-
113
67
  end
114
- end; end
68
+ end
@@ -0,0 +1,87 @@
1
+ require 'optparse'
2
+ require File.expand_path('../command/tmx.rb', File.readlink(__FILE__))
3
+ require File.expand_path('../command/image.rb', File.readlink(__FILE__))
4
+
5
+ module Motion
6
+ module Project
7
+ class JoyboxRetinaCommand < Command
8
+
9
+ include Joybox::Command
10
+
11
+ RetinaSuffix = '-hd'
12
+ RetinaScaleFactor = 2.0
13
+
14
+ self.name = 'joybox:retina'
15
+ self.help = 'Joybox: Retina Generator'
16
+
17
+ @@description = <<-EOF
18
+ Generates a retina version for a image or tmx files
19
+
20
+ For images it will scale the original image and save it with the suffix
21
+ -hd. Please note that is only for testing purposes it will not increase
22
+ the image quality.
23
+
24
+ For TMX files it will scale the Map, Tileset and Object information to
25
+ 2x and save it with the -hd suffix. Also if the Tileset is found it will
26
+ be scaled and saved with the same suffix.
27
+ EOF
28
+
29
+ @@example = <<-EOF
30
+ motion jb:retina tile_map.tmx
31
+
32
+ This will create a new file named tile_map-hd.tmx, update its Map, Tileset
33
+ and Object properties and create the according retina images with the -hd
34
+ suffix.
35
+ EOF
36
+
37
+ def run(args)
38
+ options = Hash.new
39
+
40
+ opt_parser = OptionParser.new do |opt|
41
+ opt.banner = "Usage:"
42
+ opt.separator " motion joybox:retina <file-name>"
43
+ opt.separator ""
44
+ opt.separator "Options:"
45
+
46
+ opt.on('-s', '--suffix <suffix>', 'Retina suffix (default: -hd)') do |suffix|
47
+ options[:suffix] = suffix
48
+ end
49
+ opt.on('-%', '--scale <scale>', Float, 'Retina scale (default: 2.0)') do |scale_factor|
50
+ options[:scale_factor] = scale_factor
51
+ end
52
+ opt.on('-h', '--help', 'Shows this screen')
53
+
54
+ opt.separator ""
55
+ opt.separator "Description:"
56
+ opt.separator @@description
57
+ opt.separator ""
58
+ opt.separator "Example:"
59
+ opt.separator @@example
60
+ end
61
+
62
+ opt_parser.parse!(args)
63
+
64
+ file_path = args[0]
65
+ suffix = options[:suffix] || RetinaSuffix
66
+ scale_factor = options[:scale_factor] || RetinaScaleFactor
67
+
68
+ unless file_path.nil? or File.exists? file_path
69
+ App.log 'Error', "#{file_path} does not exist"
70
+ return
71
+ end
72
+
73
+ case file_path
74
+ when /\w+.tmx/i
75
+ document = TMX.new(file_path, suffix)
76
+ document.scale(scale_factor)
77
+ when /([^\s]+(\.(?i)(jpg|jpeg|png|gif|bmp))$)/i
78
+ image = Image.new(file_path, suffix)
79
+ image.scale(scale_factor)
80
+ else
81
+ puts opt_parser
82
+ end
83
+ end
84
+
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,34 @@
1
+ require 'fileutils'
2
+
3
+ ruby_motion_directory = File.expand_path('~/Library/RubyMotion')
4
+ command_directory = File.join(ruby_motion_directory, 'command')
5
+ template_directory = File.join(ruby_motion_directory, 'template')
6
+
7
+ joybox_command_directory = File.expand_path('../../command', __FILE__)
8
+ joybox_template_directory = File.expand_path('../../template/', __FILE__)
9
+
10
+ # Previous version clean up
11
+ FileUtils.rm_rf File.join(command_directory, 'joybox')
12
+ FileUtils.rm_f File.join(command_directory, 'joybox_generate_command.rb')
13
+ FileUtils.rm_rf File.join(template_directory, 'joybox-ios')
14
+ FileUtils.rm_rf File.join(template_directory, 'joybox-ios-example-repl')
15
+ FileUtils.rm_rf File.join(template_directory, 'joybox-osx')
16
+ FileUtils.rm_rf File.join(template_directory, 'joybox-osx-example-repl')
17
+
18
+ FileUtils.mkdir_p(command_directory) unless File.directory?(command_directory)
19
+ FileUtils.mkdir_p(template_directory) unless File.directory?(template_directory)
20
+
21
+ Dir.glob(File.join(joybox_command_directory, '*.rb')).each do |source_file|
22
+ destination_file = File.join(command_directory, File.basename(source_file))
23
+ FileUtils.rm_f destination_file
24
+ FileUtils.ln_s source_file, destination_file
25
+ end
26
+
27
+ Dir.glob(File.join(joybox_template_directory, '**')).each do |source_directory|
28
+ destination_directory = File.join(template_directory, File.basename(source_directory))
29
+ FileUtils.rm_f destination_directory
30
+ FileUtils.ln_s source_directory, destination_directory
31
+ end
32
+
33
+ require 'mkmf'
34
+ create_makefile('')
@@ -2,67 +2,120 @@
2
2
  require File.expand_path('../lib/joybox/version.rb', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.name = 'joybox'
6
- gem.version = Joybox::VERSION
7
-
8
- gem.authors = ['Juan José Karam']
5
+ gem.name = 'joybox'
6
+ gem.version = Joybox::VERSION
7
+ gem.authors = ['Juan José Karam', 'Gabriel Sosa', 'Contributors']
9
8
  gem.email = 'juanjokaram@gmail.com'
10
9
 
11
- gem.description = <<-DESC
12
- A Cocos2D & Box2D DSL for RubyMotion
13
- DESC
10
+ gem.description = 'A Cocos2D & Box2D Wrapper for creating video games using RubyMotion'
11
+ gem.summary = 'A Cocos2D & Box2D Wrapper for RubyMotion'
14
12
 
15
- gem.summary = 'A Cocos2D & Box2D DSL for RubyMotion'
16
13
  gem.homepage = 'http://joybox.io'
17
14
  gem.license = 'MIT'
18
15
 
19
- gem.files = `git ls-files`.split($\)
20
- gem.require_paths = ['lib']
21
- gem.test_files = gem.files.grep(%r{^spec/})
16
+ gem.files = `git ls-files`.split($\)
17
+ gem.require_paths = ['lib', 'motion', 'vendor', 'command', 'template']
18
+ gem.test_files = gem.files.grep(%r{^spec/})
22
19
 
23
20
  gem.add_dependency 'rake'
24
21
  gem.add_development_dependency 'rspec'
25
22
 
26
- gem.executables = ["joybox"]
23
+ gem.extensions = ['ext/extconf.rb']
27
24
 
28
25
  gem.post_install_message = <<-MESSAGE
29
- ** Joybox 1.0.0 **
30
-
31
- * Added REPL Support for iOS and OSX :D
32
- * NOTE: If the iOS simulator starts on landscape orientation, please rotate and return it.
33
- (cmd + => and cmd + <=)
34
- * Added REPL Example Template. Use 'motion create --template=joybox-ios-example-repl <name>' or
35
- 'motion create --template=joybox-osx-example-repl <name>'
36
- * IMPORTANT: Typo fix in World class (Joybox, Box2D and Website), changing to continuous_physics the configuration, thank you David Czarnecki!
37
- * IMPORTANT: Typo fix in Macros, changing jbpLenght to jpbLength, thank you David Czarnecki!
38
- * Added: Clear extra lines in iOS Template. Thank you Willrax!
39
- * Added: Examples iPhone 5 support
40
- * Added: iOS Template iPhone 5 support
41
- * Joybox is stopping the madness! Thanks all for your support!
42
-
43
- 0
44
- 101
45
- 01010
46
- 1010101
47
- 010101010
48
- 10101010101
49
- 0101010101010
50
- 101010101010101
51
- 01010101010101010
52
- 1010101010101010101
53
- 010101010101010101010
54
- 1 1
55
- 010 010
56
- 10101 10101
57
- 0101010 0101010
58
- 101010101 101010101
59
- 01010101010 01010101010
60
- 1010101010101 1010101010101
61
- 010101010101010 010101010101010
62
- 10101010101010101 10101010101010101
63
- 0101010101010101010 0101010101010101010
64
- 1010101010101010101011101010101010101010101
26
+ = Joybox 1.1.0 =
65
27
 
66
- MESSAGE
28
+ Contributors
29
+ * Kenichi Yonekawa, yonekawa
30
+ * Earl St Sauver, estsauver
31
+ * Denis Laprise, nside
32
+ * Franklin Webber, burtlo
33
+ * Andrew Currie, AndrewCurrie
34
+ * Jamon Holmgren, jamonholmgren
35
+ * Christopher David Yudichak, TheOddLinguist
36
+ * Donald Hutchison, rkachowski
37
+ * Didier Prophete, dprophete
38
+ * Severin Schoepke, severin
39
+ * awdogsgo2heaven
40
+ * Juha Litola, jlitola
41
+ * David Padilla, dabit
42
+ * PanPan, ippan
43
+ * Keyvan Fatehi, keyvanfatehi
44
+ * n-studio
45
+
46
+ Physics
47
+ * Support for all Shapes and Listeners.
48
+
49
+ * Filters, AABB computations, Queries and Ray Casts.
50
+
51
+ * Collision support for Physics Sprites.
52
+
53
+ * Experimental support for actions on Physics Sprites.
54
+
55
+ * Physics Debug Draw.
56
+
57
+ Effects and Background Music
58
+ * AudioEffect and BackgroundAudio to playback background music and special effects.
59
+
60
+ Tile Maps Support
61
+ * Support for TMX Maps using the TileMap class.
62
+
63
+ Actions
64
+ * Complete actions
65
+
66
+ Gestures
67
+ * Support the default gestures on OSX.
68
+
69
+ Commands
70
+ * Adds joybox:retina command to create a Retina version of a TMX Map.
71
+
72
+ Sprites
73
+ * Support for custom options on the Sprite initialization.
67
74
 
68
- end
75
+ Source Code
76
+ * The commands and templates now install automatically.
77
+
78
+ * Added 218 specifications and 617 requirements.
79
+
80
+ Critical Changes
81
+ * Node: The method add_childs is now add_children.
82
+
83
+ * SpriteFrameCache: The method where now starts from 1 instead of 0.
84
+
85
+ * Animation: The delay method is now delay_units, and total_delay is now delay_per_unit.
86
+
87
+ * Menu: The method align_items_in_columns now receive an array for defining how many columns and
88
+ how many items in which of them.
89
+
90
+ * Physics: Now every object returns their values in pixel coordinates and degrees, if you still
91
+ need to use the metric values you can access them with the prefix metric_.
92
+ For example: metric_position.
93
+
94
+ * World: The Method continuos_physics is now deprecated.
95
+
96
+ * Physics Collisions: Now for use when_collide method of the World instance, you need to pass an
97
+ instance of a PhysicsSprite and it will return in the block the colliding
98
+ physics sprite if available, or the body that is colliding.
99
+
100
+ * Point: The methods to and from pixel coordinates are now inverted, there was an incorrect naming.
101
+
102
+ 00000000000000111111111111110000000000000000000000000000000000
103
+ 00000000000000000111111111111111111111100000000000000000000000
104
+ 00000000000000000011111111111111111111111111111110000000000000
105
+ 00000000000000111111111111111111111111111111111111111000000000
106
+ 00000000000001111111111111111111111111111111111111111111000000
107
+ 00000001100001111111111110000000111111111111111111111111000000
108
+ 00000011111001111111111100000000011111111111111111111110000000
109
+ 00000011111111111111111000000000001111111111111111111000000000
110
+ 00000011111111111111111000000000011111111111111111100000000000
111
+ 00000001111111111111111110000000111111111111111110000000000000
112
+ 00000001111110011111111111111111111111111111100000000000000000
113
+ 00000001111100011111111111111111111111111000000000000000000000
114
+ 00000000011000001111111111111111111110000000000000000000000000
115
+ 00000000000000000111111111111111110000000000000000000000000000
116
+ 00000000000000000000000111111111000000000000000000000000000000
117
+ 00000000000000000000011111111000000000000000000000000000000000
118
+ 00000000000000000001111100000000000000000000000000000000000000
119
+
120
+ MESSAGE
121
+ end