joybox 0.0.6 → 1.0.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 (202) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +18 -2
  3. data/Rakefile +1 -2
  4. data/joybox.gemspec +34 -35
  5. data/lib/joybox/joybox-ios.rb +2 -4
  6. data/lib/joybox/version.rb +1 -1
  7. data/motion/joybox-ios/configuration/configuration.rb +12 -1
  8. data/motion/joybox-ios/configuration/debug.rb +27 -0
  9. data/motion/joybox-ios/debug/debug.rb +10 -0
  10. data/motion/joybox-ios/debug/node.rb +66 -0
  11. data/motion/joybox-ios/debug/proxy_view.rb +31 -0
  12. data/motion/joybox-osx/configuration/configuration.rb +11 -0
  13. data/motion/joybox-osx/configuration/debug.rb +27 -0
  14. data/motion/joybox-osx/configuration/sprite_view.rb +91 -0
  15. data/motion/joybox-osx/debug/debug.rb +10 -0
  16. data/motion/joybox-osx/debug/node.rb +51 -0
  17. data/motion/joybox-osx/debug/proxy_view.rb +31 -0
  18. data/motion/joybox/actions/fade.rb +1 -3
  19. data/motion/joybox/core/ns_object.rb +8 -0
  20. data/motion/joybox/core/sprite.rb +19 -13
  21. data/motion/joybox/macros.rb +3 -3
  22. data/motion/joybox/physics/body.rb +0 -1
  23. data/motion/joybox/physics/physics_sprite.rb +14 -11
  24. data/motion/joybox/physics/world.rb +4 -4
  25. data/template/joybox-ios-example-repl/files/Rakefile.erb +9 -0
  26. data/template/joybox-ios-example-repl/files/app/app_delegate.rb +55 -0
  27. data/template/joybox-ios-example-repl/files/app/layers/actions_layer.rb +13 -0
  28. data/template/joybox-ios-example-repl/files/app/layers/background_layer.rb +9 -0
  29. data/template/joybox-ios-example-repl/files/app/scenes/game_scene.rb +11 -0
  30. data/template/joybox-ios-example-repl/files/resources/fps_images-hd.png +0 -0
  31. data/template/joybox-ios-example-repl/files/resources/fps_images-ipadhd.png +0 -0
  32. data/template/joybox-ios-example-repl/files/resources/fps_images.png +0 -0
  33. data/template/joybox-ios-example-repl/files/resources/images/background.png +0 -0
  34. data/template/joybox-ios-example-repl/files/resources/sprites/character_boy.png +0 -0
  35. data/template/joybox-ios-example-repl/files/resources/sprites/character_horn_girl.png +0 -0
  36. data/template/joybox-ios-example-repl/files/resources/sprites/character_pink_girl.png +0 -0
  37. data/template/joybox-ios-example-repl/files/spec/layers/actions_layer_spec.rb +3 -0
  38. data/template/joybox-ios-example-repl/files/spec/layers/background_layer_spec.rb +3 -0
  39. data/template/joybox-ios-example-repl/files/spec/main_spec.rb +9 -0
  40. data/template/joybox-ios-example-repl/files/spec/scenes/game_scene_spec.rb +3 -0
  41. data/template/joybox-ios/files/resources/Default-568h@2x.png +0 -0
  42. data/template/joybox-osx-example-repl/files/Rakefile.erb +9 -0
  43. data/template/joybox-osx-example-repl/files/app/app_delegate.rb +32 -0
  44. data/template/joybox-osx-example-repl/files/app/layers/actions_layer.rb +20 -0
  45. data/template/joybox-osx-example-repl/files/app/layers/background_layer.rb +9 -0
  46. data/template/joybox-osx-example-repl/files/app/menu.rb +51 -0
  47. data/template/joybox-osx-example-repl/files/app/scenes/game_scene.rb +11 -0
  48. data/template/joybox-osx-example-repl/files/readme.md +12 -0
  49. data/template/joybox-osx-example-repl/files/resources/fps_images-hd.png +0 -0
  50. data/template/joybox-osx-example-repl/files/resources/fps_images-ipadhd.png +0 -0
  51. data/template/joybox-osx-example-repl/files/resources/fps_images.png +0 -0
  52. data/template/joybox-osx-example-repl/files/resources/images/background.png +0 -0
  53. data/template/joybox-osx-example-repl/files/resources/sprites/character_boy.png +0 -0
  54. data/template/joybox-osx-example-repl/files/resources/sprites/character_horn_girl.png +0 -0
  55. data/template/joybox-osx-example-repl/files/resources/sprites/character_pink_girl.png +0 -0
  56. data/template/joybox-osx-example-repl/files/spec/layers/actions_layer_spec.rb +3 -0
  57. data/template/joybox-osx-example-repl/files/spec/layers/background_layer_spec.rb +3 -0
  58. data/template/joybox-osx-example-repl/files/spec/main_spec.rb +9 -0
  59. data/template/joybox-osx-example-repl/files/spec/scenes/game_scene_spec.rb +3 -0
  60. data/template/joybox-osx/files/app/layers/default_layer.rb +2 -4
  61. data/vendor/vendor-ios/box_2d/box_2d.bridgesupport +176 -0
  62. data/vendor/{vendor-osx/box_2d/include → vendor-ios/box_2d/box_2d_include}/B2DBody.h +1 -1
  63. data/vendor/vendor-ios/{Box2D.framework/Versions/A/Headers/Collision/Shapes → box_2d/box_2d_include}/B2DCircleShape.h +1 -1
  64. data/vendor/{vendor-osx/box_2d/include → vendor-ios/box_2d/box_2d_include}/B2DContactListener.h +1 -2
  65. data/vendor/{vendor-osx/box_2d/include → vendor-ios/box_2d/box_2d_include}/B2DEdgeShape.h +1 -1
  66. data/vendor/{vendor-osx/box_2d/include → vendor-ios/box_2d/box_2d_include}/B2DPolygonShape.h +1 -1
  67. data/vendor/{vendor-osx/box_2d/include → vendor-ios/box_2d/box_2d_include}/B2DShape.h +1 -1
  68. data/vendor/{vendor-osx/box_2d/include → vendor-ios/box_2d/box_2d_include}/B2DWorld.h +5 -4
  69. data/vendor/vendor-ios/box_2d/libBox2D.a +0 -0
  70. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCAction.h +0 -0
  71. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionCamera.h +0 -0
  72. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionCatmullRom.h +0 -0
  73. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionEase.h +0 -0
  74. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionGrid.h +0 -0
  75. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionGrid3D.h +0 -0
  76. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionInstant.h +0 -0
  77. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionInterval.h +0 -0
  78. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionManager.h +0 -0
  79. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionPageTurn3D.h +0 -0
  80. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionProgressTimer.h +0 -0
  81. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionTiledGrid.h +0 -0
  82. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCActionTween.h +0 -0
  83. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCAnimation.h +0 -0
  84. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCAnimationCache.h +0 -0
  85. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCAtlasNode.h +0 -0
  86. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCCamera.h +0 -0
  87. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCClippingNode.h +0 -0
  88. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCConfiguration.h +0 -0
  89. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCDirector.h +0 -0
  90. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCDrawNode.h +0 -0
  91. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCDrawingPrimitives.h +0 -0
  92. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCGLProgram.h +0 -0
  93. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCGrabber.h +0 -0
  94. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCGrid.h +0 -0
  95. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCLabelAtlas.h +0 -0
  96. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCLabelBMFont.h +0 -0
  97. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCLabelTTF.h +0 -0
  98. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCLayer.h +0 -0
  99. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCMenu.h +0 -0
  100. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCMenuItem.h +0 -0
  101. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCMotionStreak.h +0 -0
  102. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCNode+Debug.h +0 -0
  103. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCNode.h +0 -0
  104. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCParallaxNode.h +0 -0
  105. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCParticleBatchNode.h +0 -0
  106. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCParticleExamples.h +0 -0
  107. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCParticleSystem.h +0 -0
  108. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCParticleSystemQuad.h +0 -0
  109. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCPhysicsDebugNode.h +0 -0
  110. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCPhysicsSprite.h +0 -0
  111. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCProgressTimer.h +0 -0
  112. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCProtocols.h +0 -0
  113. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCRenderTexture.h +0 -0
  114. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCScene.h +0 -0
  115. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCScheduler.h +0 -0
  116. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCShaderCache.h +0 -0
  117. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCSprite.h +0 -0
  118. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCSpriteBatchNode.h +0 -0
  119. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCSpriteFrame.h +0 -0
  120. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCSpriteFrameCache.h +0 -0
  121. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTMXLayer.h +0 -0
  122. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTMXObjectGroup.h +0 -0
  123. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTMXTiledMap.h +0 -0
  124. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTMXXMLParser.h +0 -0
  125. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTexture2D.h +0 -0
  126. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTextureAtlas.h +0 -0
  127. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTextureCache.h +0 -0
  128. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTexturePVR.h +0 -0
  129. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTileMapAtlas.h +0 -0
  130. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTransition.h +0 -0
  131. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTransitionPageTurn.h +0 -0
  132. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/CCTransitionProgress.h +0 -0
  133. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/CCGL.h +0 -0
  134. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/CCNS.h +0 -0
  135. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/Mac/CCDirectorMac.h +0 -0
  136. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/Mac/CCEventDispatcher.h +0 -0
  137. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/Mac/CCGLView.h +0 -0
  138. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/Mac/CCWindow.h +0 -0
  139. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCDirectorIOS.h +0 -0
  140. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCES2Renderer.h +0 -0
  141. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCESRenderer.h +0 -0
  142. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCGLView.h +0 -0
  143. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCTouchDelegateProtocol.h +0 -0
  144. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCTouchDispatcher.h +0 -0
  145. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Platforms/iOS/CCTouchHandler.h +0 -0
  146. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/CCArray.h +0 -0
  147. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/CCFileUtils.h +0 -0
  148. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/CCProfiling.h +0 -0
  149. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/CCVertex.h +0 -0
  150. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/CGPointExtension.h +0 -0
  151. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/NSThread+performBlock.h +0 -0
  152. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/OpenGL_Internal.h +0 -0
  153. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/TGAlib.h +0 -0
  154. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/TransformUtils.h +0 -0
  155. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/ZipUtils.h +0 -0
  156. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/base64.h +0 -0
  157. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/ccCArray.h +0 -0
  158. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/ccUtils.h +0 -0
  159. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/uthash.h +0 -0
  160. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/Support/utlist.h +0 -0
  161. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccConfig.h +0 -0
  162. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccDeprecated.h +0 -0
  163. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccFPSImages.h +0 -0
  164. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccGLStateCache.h +0 -0
  165. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccMacros.h +0 -0
  166. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionColorLengthTexture_frag.h +0 -0
  167. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionColorLengthTexture_vert.h +0 -0
  168. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionColor_frag.h +0 -0
  169. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionColor_vert.h +0 -0
  170. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTextureA8Color_frag.h +0 -0
  171. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTextureA8Color_vert.h +0 -0
  172. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTextureColorAlphaTest_frag.h +0 -0
  173. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTextureColor_frag.h +0 -0
  174. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTextureColor_vert.h +0 -0
  175. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTexture_frag.h +0 -0
  176. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTexture_uColor_frag.h +0 -0
  177. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTexture_uColor_vert.h +0 -0
  178. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_PositionTexture_vert.h +0 -0
  179. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_Position_uColor_frag.h +0 -0
  180. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShader_Position_uColor_vert.h +0 -0
  181. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccShaders.h +0 -0
  182. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/ccTypes.h +0 -0
  183. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/cocos2d-ios-exceptions.bridgesupport +0 -0
  184. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/cocos2d.h +0 -0
  185. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/gen_cocos2d_bridgesupport.sh +0 -0
  186. data/vendor/vendor-ios/cocos_2d/{include → cocos_2d_include}/gen_cocos2d_complement.sh +0 -0
  187. data/vendor/vendor-osx/box_2d/box_2d.bridgesupport +87 -87
  188. data/vendor/{vendor-ios/Box2D.framework/Versions/A/Headers/Dynamics → vendor-osx/box_2d/box_2d_include}/B2DBody.h +5 -2
  189. data/vendor/vendor-osx/box_2d/{include → box_2d_include}/B2DCircleShape.h +1 -1
  190. data/vendor/{vendor-ios/Box2D.framework/Versions/A/Headers/Collision → vendor-osx/box_2d/box_2d_include}/B2DContactListener.h +6 -2
  191. data/vendor/{vendor-ios/Box2D.framework/Versions/A/Headers/Collision/Shapes → vendor-osx/box_2d/box_2d_include}/B2DEdgeShape.h +1 -1
  192. data/vendor/{vendor-ios/Box2D.framework/Versions/A/Headers/Collision/Shapes → vendor-osx/box_2d/box_2d_include}/B2DPolygonShape.h +1 -1
  193. data/vendor/{vendor-ios/Box2D.framework/Versions/A/Headers/Collision/Shapes → vendor-osx/box_2d/box_2d_include}/B2DShape.h +5 -2
  194. data/vendor/{vendor-ios/Box2D.framework/Versions/A/Headers/Dynamics → vendor-osx/box_2d/box_2d_include}/B2DWorld.h +9 -5
  195. data/vendor/vendor-osx/box_2d/libBox2D.a +0 -0
  196. metadata +199 -165
  197. data/vendor/vendor-ios/Box2D.framework/Box2D +0 -0
  198. data/vendor/vendor-ios/Box2D.framework/Box2D.framework.bridgesupport +0 -176
  199. data/vendor/vendor-ios/Box2D.framework/Versions/A/Box2D +0 -0
  200. data/vendor/vendor-ios/Box2D.framework/Versions/A/Resources/Box2DConfig.cmake +0 -3
  201. data/vendor/vendor-ios/Box2D.framework/Versions/A/Resources/CMakeLists.txt +0 -205
  202. data/vendor/vendor-ios/Box2D.framework/Versions/A/Resources/LICENSE +0 -22
@@ -0,0 +1,10 @@
1
+ module Joybox
2
+ module Debug
3
+
4
+ class << self
5
+ attr_accessor :repl
6
+ attr_accessor :bounding_box
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,51 @@
1
+ module Joybox
2
+ module Debug
3
+ module Node
4
+
5
+ def self.included(base)
6
+ base.send(:attr_accessor, :proxy_view)
7
+ base.send(:attr_accessor, :bounding_box_layer)
8
+ end
9
+
10
+ def initialize
11
+ @proxy_view = ProxyView.alloc.initWithFrame(translated_bounding_box)
12
+ @proxy_view.node = self
13
+ Joybox.director.view.addSubview(@proxy_view)
14
+ end
15
+
16
+ def cleanup
17
+ @proxy_view.removeFromSuperview
18
+ super
19
+ end
20
+
21
+ def translated_bounding_box
22
+ boundingBox
23
+ end
24
+
25
+ def setPosition(position)
26
+ super
27
+ update_bounding_box
28
+ end
29
+
30
+ def setContentSize(size)
31
+ super
32
+ @proxy_view.removeFromSuperview if boundingBox.size.width == Screen.width
33
+ update_bounding_box
34
+ end
35
+
36
+ def nodeToParentTransform
37
+ update_bounding_box
38
+ super
39
+ end
40
+
41
+
42
+ private
43
+
44
+ def update_bounding_box
45
+ @proxy_view.frame = translated_bounding_box unless @proxy_view.nil?
46
+ @bounding_box_layer.frame = @proxy_view.bounds unless @bounding_box_layer.nil?
47
+ end
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,31 @@
1
+ module Joybox
2
+ module Debug
3
+
4
+ class ProxyView < NSView
5
+
6
+ attr_accessor :node
7
+
8
+ def to_s
9
+ @node.to_s
10
+ end
11
+
12
+ def position
13
+ @node.position
14
+ end
15
+
16
+ def position=(position)
17
+ @node.position = position
18
+ end
19
+
20
+ def method_missing(method, *args, &block)
21
+ if @node.respond_to?(method)
22
+ @node.send(method, *args, &block)
23
+ else
24
+ raise NoMethodError
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ end
31
+ end
@@ -25,11 +25,9 @@ module Joybox
25
25
  end
26
26
 
27
27
  def self.to(options = {})
28
- p "========================="
29
28
  options = options.nil? ? defaults : defaults.merge!(options)
30
- p options
31
29
 
32
- CCFadeTo.actionWithDuration(options[:duration],
30
+ CCFadeTo.actionWithDuration(options[:duration],
33
31
  opacity: options[:opacity])
34
32
  end
35
33
 
@@ -0,0 +1,8 @@
1
+ class NSObject
2
+
3
+ def init
4
+ self.send(:initialize)
5
+ self
6
+ end
7
+
8
+ end
@@ -3,61 +3,67 @@ module Joybox
3
3
 
4
4
  class Sprite < CCSprite
5
5
 
6
+ include Joybox::Common
7
+
6
8
  alias_method :run_action, :runAction
7
9
  alias_method :stop_action, :stopAction
8
10
  alias_method :stop_all_actions, :stopAllActions
11
+ alias_method :bounding_box, :boundingBox
9
12
 
10
- def self.new(options = {})
11
13
 
14
+ def self.new(options = {})
12
15
  sprite ||= new_with_file_name(options) if options.has_key? (:file_name)
13
16
  sprite ||= new_with_texture(options) if options.has_key? (:texture)
14
17
  sprite ||= new_with_frame_name(options) if options.has_key? (:frame_name)
15
18
 
16
19
  sprite.position = options[:position] if options.has_key? (:position)
17
-
18
20
  sprite
19
21
  end
20
22
 
21
23
  def file_name=(file_name)
22
-
23
24
  texture = CCTextureCache.sharedTextureCache.addImage(file_name)
24
25
  self.setTexture(texture)
25
26
  end
26
-
27
27
 
28
28
  # Review this in another version, because I dont still quite convinced
29
29
  # that this is the correct approach. The alternative is two methods
30
30
  # flip_x and flip_y, but I dont like them either.
31
31
  def flip(options = {})
32
-
33
32
  self.flipX = options[:x] if options.include?(:x)
34
33
  self.flipY = options[:y] if options.include?(:y)
35
34
  end
36
35
 
36
+ def setPosition(position)
37
+ super
38
+ end
39
+
40
+ def setContentSize(size)
41
+ super
42
+ end
43
+
44
+ def nodeToParentTransform
45
+ super
46
+ end
47
+
48
+ def boundingBox
49
+ super
50
+ end
37
51
 
38
52
  private
39
53
 
40
54
  def self.new_with_file_name(options = {})
41
-
42
55
  spriteWithFile(options[:file_name])
43
56
  end
44
57
 
45
-
46
58
  def self.new_with_texture(options = {})
47
-
48
59
  if options.has_key? (:rect)
49
-
50
60
  spriteWithTexture(options[:texture], rect: options[:rect])
51
61
  else
52
-
53
62
  spriteWithTexture(options:[:texture])
54
63
  end
55
-
56
64
  end
57
65
 
58
-
59
66
  def self.new_with_frame_name(options = {})
60
-
61
67
  spriteWithSpriteFrameName(options[:frame_name])
62
68
  end
63
69
 
@@ -84,18 +84,18 @@ module Joybox
84
84
  end
85
85
 
86
86
  # Distance between point an origin
87
- def jbpLenght(point)
87
+ def jbpLength(point)
88
88
  Math.sqrt(jbpLengthSQ(point))
89
89
  end
90
90
 
91
91
  # Distance between two points
92
92
  def jbpDistance(first_point, second_point)
93
- jbpLenght(jbpSub(first_point, second_point))
93
+ jbpLength(jbpSub(first_point, second_point))
94
94
  end
95
95
 
96
96
  # Point multiplied to a lenght of 1
97
97
  def jbpNormalize(point)
98
- jbpMult(point, 1.0 / jbpLenght(point))
98
+ jbpMult(point, 1.0 / jbpLength(point))
99
99
  end
100
100
 
101
101
  # Converts radians to a normalized vector
@@ -77,7 +77,6 @@ class B2DBody
77
77
  position = CGPointMake(position[0], position[1])
78
78
 
79
79
  # Coordinate system conversion
80
- position = position.to_opengl_coordinates
81
80
  position = position.to_pixel_coordinates
82
81
 
83
82
  self.setPosition(position)
@@ -7,27 +7,33 @@ module Joybox
7
7
  attr_accessor :body
8
8
 
9
9
  def self.new(options = {})
10
-
11
10
  sprite = super
12
11
  sprite.body = options[:body] if options.include? :body
13
12
 
14
13
  sprite
15
14
  end
16
15
 
17
-
16
+ # We need this method to return true, so Cocos2d continue
17
+ # to call the nodeToParentTransform method
18
18
  def dirty
19
+ true
20
+ end
19
21
 
20
- true
22
+ def position=(position)
23
+ @body.position = position
24
+ end
25
+
26
+ def position
27
+ @body.position.from_pixel_coordinates
21
28
  end
22
29
 
23
- # We need this method to return true, so Cocos2d continue
24
- # to call the nodeToParentTransform method
25
30
  def nodeToParentTransform
31
+ return super if @body.nil?
26
32
 
33
+ super
34
+
27
35
  position = @body.position.from_pixel_coordinates
28
-
29
36
  position = position + anchorPointInPoints if ignoreAnchorPointForPosition
30
-
31
37
  angle = @body.angle
32
38
 
33
39
  x = position.x
@@ -35,18 +41,15 @@ module Joybox
35
41
  cosine = Math.cos(angle)
36
42
  sine = Math.sin(angle)
37
43
 
38
-
39
44
  unless anchorPointInPoints == CGPointZero
40
-
41
45
  x = x + cosine * -anchorPointInPoints.x + -sine * -anchorPointInPoints.y
42
46
  y = y + sine * -anchorPointInPoints.x + cosine * -anchorPointInPoints.y
43
47
  end
44
48
 
45
-
46
49
  CGAffineTransformMake(cosine, sine, -sine, cosine, x, y)
47
50
  end
48
51
 
49
52
  end
50
53
 
51
54
  end
52
- end
55
+ end
@@ -7,7 +7,7 @@ module Joybox
7
7
  {
8
8
  gravity: [0, 0],
9
9
  allows_sleeping: true,
10
- continuos_physics: true
10
+ continuous_physics: true
11
11
  }
12
12
  end
13
13
 
@@ -16,11 +16,11 @@ module Joybox
16
16
 
17
17
  options = options.nil? ? defaults : defaults.merge!(options)
18
18
 
19
- world = World.alloc.init
19
+ world = World.alloc.init
20
20
 
21
21
  world.gravity = options[:gravity]
22
22
  world.allowsSleeping = options[:allows_sleeping]
23
- world.continuosPhysics = options[:continuos_physics]
23
+ world.continuousPhysics = options[:continuous_physics]
24
24
 
25
25
  world
26
26
  end
@@ -38,7 +38,7 @@ module Joybox
38
38
 
39
39
  options = options.nil? ? step_defaults : step_defaults.merge!(options)
40
40
 
41
- stepWithDelta(options[:delta],
41
+ stepWithDelta(options[:delta],
42
42
  velocityInteractions: options[:velocity_interactions],
43
43
  positionInteractions: options[:position_interactions])
44
44
  end
@@ -0,0 +1,9 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift("/Library/RubyMotion/lib")
3
+ require 'motion/project/template/ios'
4
+ require 'joybox'
5
+
6
+ Motion::Project::App.setup do |app|
7
+ # Use `rake config' to see complete project settings.
8
+ app.name = '<%= name %>'
9
+ end
@@ -0,0 +1,55 @@
1
+ # Joybox - REPL Support Example
2
+ # Art By:Daniel Cook - Lost Garden http://www.lostgarden.com/2007/05/dancs-miraculously-flexible-game.html
3
+ # Authors: Joybox Swarm
4
+ # Joybox REPL Support Example
5
+ # Includes:
6
+ # => Scene & Sprites
7
+ # => REPL Support
8
+ class AppDelegate
9
+
10
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
11
+
12
+ @director = Joybox::Configuration.setup do
13
+ director display_stats: true
14
+ debug repl:true
15
+ end
16
+
17
+ @navigation_controller = UINavigationController.alloc.initWithRootViewController(@director)
18
+ @navigation_controller.navigationBarHidden = true
19
+
20
+ @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
21
+ @window.setRootViewController(@navigation_controller)
22
+ @window.makeKeyAndVisible
23
+
24
+ @director << GameScene.new
25
+ true
26
+ end
27
+
28
+ def applicationWillResignActive(app)
29
+ @director.pause if @navigation_controller.visibleViewController == @director
30
+ end
31
+
32
+ def applicationDidBecomeActive(app)
33
+ @director.resume if @navigation_controller.visibleViewController == @director
34
+ end
35
+
36
+ def applicationDidEnterBackground(app)
37
+ @director.stop_animation if @navigation_controller.visibleViewController == @director
38
+ end
39
+
40
+ def applicationWillEnterForeground(app)
41
+ @director.start_animation if @navigation_controller.visibleViewController == @director
42
+ end
43
+
44
+ def applicationWillTerminate(app)
45
+ @director.end
46
+ end
47
+
48
+ def applicationDidReceiveMemoryWarning(app)
49
+ @director.purge_cached_data
50
+ end
51
+
52
+ def applicationSignificantTimeChange(app)
53
+ @director.set_next_delta_time_zero true
54
+ end
55
+ end
@@ -0,0 +1,13 @@
1
+ class ActionsLayer < Joybox::Core::Layer
2
+
3
+ def on_enter
4
+ layout_characters
5
+ end
6
+
7
+ def layout_characters
8
+ @first_character = Sprite.new file_name: 'sprites/character_horn_girl.png',
9
+ position: [210, 190]
10
+ self << @first_character
11
+ end
12
+
13
+ end
@@ -0,0 +1,9 @@
1
+ class BackgroundLayer < Joybox::Core::Layer
2
+
3
+ def on_enter
4
+ background = Sprite.new file_name: 'images/background.png',
5
+ position: [Screen.half_width, Screen.half_height]
6
+ self << background
7
+ end
8
+
9
+ end
@@ -0,0 +1,11 @@
1
+ class GameScene < Joybox::Core::Scene
2
+
3
+ def on_enter
4
+ background_layer = BackgroundLayer.new
5
+ self << background_layer
6
+
7
+ actions_layer = ActionsLayer.new
8
+ self << actions_layer
9
+ end
10
+
11
+ end
@@ -0,0 +1,3 @@
1
+ describe "Layer 'Actions'" do
2
+
3
+ end