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,3 @@
1
+ describe "Layer 'Background'" do
2
+
3
+ end
@@ -0,0 +1,9 @@
1
+ describe "Application 'Actions'" do
2
+ before do
3
+ @app = UIApplication.sharedApplication
4
+ end
5
+
6
+ it "has one window" do
7
+ @app.windows.size.should == 1
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ describe "Scene 'Game'" do
2
+
3
+ end
@@ -0,0 +1,9 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift("/Library/RubyMotion/lib")
3
+ require 'motion/project/template/osx'
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,32 @@
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
+
9
+ class AppDelegate
10
+ def applicationDidFinishLaunching(notification)
11
+ buildMenu
12
+ buildWindow
13
+ end
14
+
15
+ def buildWindow
16
+ @director = Joybox::Configuration.setup do
17
+ director display_stats: true
18
+ debug repl:true
19
+ end
20
+
21
+ @main_window = NSWindow.alloc.initWithContentRect([[240, 180], [1024, 768]],
22
+ styleMask: NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask,
23
+ backing: NSBackingStoreBuffered,
24
+ defer: false)
25
+
26
+ @main_window.title = NSBundle.mainBundle.infoDictionary['CFBundleName']
27
+ @main_window.contentView.addSubview(@director.view)
28
+ @main_window.orderFrontRegardless
29
+
30
+ @director.run_with_scene(GameScene.new)
31
+ end
32
+ end
@@ -0,0 +1,20 @@
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: [773, 100]
10
+ self << @first_character
11
+
12
+ @second_character = Sprite.new file_name: 'sprites/character_pink_girl.png',
13
+ position: [300, 400]
14
+ self << @second_character
15
+
16
+ @third_character = Sprite.new file_name: 'sprites/character_boy.png',
17
+ position: [250, 400]
18
+ self << @third_character
19
+ end
20
+ 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,51 @@
1
+ class AppDelegate
2
+ def buildMenu
3
+ @mainMenu = NSMenu.new
4
+
5
+ appName = NSBundle.mainBundle.infoDictionary['CFBundleName']
6
+ addMenu(appName) do
7
+ addItemWithTitle("About #{appName}", action: 'orderFrontStandardAboutPanel:', keyEquivalent: '')
8
+ addItem(NSMenuItem.separatorItem)
9
+ addItemWithTitle('Preferences', action: 'openPreferences:', keyEquivalent: ',')
10
+ addItem(NSMenuItem.separatorItem)
11
+ servicesItem = addItemWithTitle('Services', action: nil, keyEquivalent: '')
12
+ NSApp.servicesMenu = servicesItem.submenu = NSMenu.new
13
+ addItem(NSMenuItem.separatorItem)
14
+ addItemWithTitle("Hide #{appName}", action: 'hide:', keyEquivalent: 'h')
15
+ item = addItemWithTitle('Hide Others', action: 'hideOtherApplications:', keyEquivalent: 'H')
16
+ item.keyEquivalentModifierMask = NSCommandKeyMask|NSAlternateKeyMask
17
+ addItemWithTitle('Show All', action: 'unhideAllApplications:', keyEquivalent: '')
18
+ addItem(NSMenuItem.separatorItem)
19
+ addItemWithTitle("Quit #{appName}", action: 'terminate:', keyEquivalent: 'q')
20
+ end
21
+
22
+ NSApp.windowsMenu = addMenu('Window') do
23
+ addItemWithTitle('Minimize', action: 'performMiniaturize:', keyEquivalent: 'm')
24
+ addItemWithTitle('Zoom', action: 'performZoom:', keyEquivalent: '')
25
+ addItem(NSMenuItem.separatorItem)
26
+ addItemWithTitle('Bring All To Front', action: 'arrangeInFront:', keyEquivalent: '')
27
+ end.menu
28
+
29
+ NSApp.helpMenu = addMenu('Help') do
30
+ addItemWithTitle("#{appName} Help", action: 'showHelp:', keyEquivalent: '?')
31
+ end.menu
32
+
33
+ NSApp.mainMenu = @mainMenu
34
+ end
35
+
36
+ private
37
+
38
+ def addMenu(title, &b)
39
+ item = createMenu(title, &b)
40
+ @mainMenu.addItem item
41
+ item
42
+ end
43
+
44
+ def createMenu(title, &b)
45
+ menu = NSMenu.alloc.initWithTitle(title)
46
+ menu.instance_eval(&b) if b
47
+ item = NSMenuItem.alloc.initWithTitle(title, action: nil, keyEquivalent: '')
48
+ item.submenu = menu
49
+ item
50
+ end
51
+ 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,12 @@
1
+ # Joybox - REPL Support Example
2
+
3
+ **Art By:** Daniel Cook [Danc's Miraculously Flexible Game Prototyping Tiles - Lost Garden](http://www.lostgarden.com/2007/05/dancs-miraculously-flexible-game.html)
4
+
5
+ **Authors:** Joybox Swarm
6
+
7
+ Joybox REPL Support Example
8
+
9
+ *Includes:*
10
+
11
+ * Scene & Sprites
12
+ * REPL Support
@@ -0,0 +1,3 @@
1
+ describe "Layer 'Actions'" do
2
+
3
+ end
@@ -0,0 +1,3 @@
1
+ describe "Layer 'Background'" do
2
+
3
+ end
@@ -0,0 +1,9 @@
1
+ describe "Application 'repl_demo'" do
2
+ before do
3
+ @app = UIApplication.sharedApplication
4
+ end
5
+
6
+ it "has one window" do
7
+ @app.windows.size.should == 1
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ describe "Scene 'Game'" do
2
+
3
+ end
@@ -1,5 +1,3 @@
1
1
  class DefaultLayer < Joybox::Core::Layer
2
-
3
- scene
4
-
5
- end
2
+ scene
3
+ end
@@ -0,0 +1,176 @@
1
+ <?xml version='1.0'?>
2
+ <signatures version='1.0'>
3
+ <enum name='kDynamicBodyType' value='2'/>
4
+ <enum name='kKinematicBodyType' value='1'/>
5
+ <enum name='kStaticBodyType' value='0'/>
6
+ <class name='B2DBody'>
7
+ <method selector='addFixtureForShape:friction:restitution:density:isSensor:'>
8
+ <arg name='shape' index='0' declared_type='B2DShape*' type='@'/>
9
+ <arg name='friction' index='1' declared_type='CGFloat' type='f'/>
10
+ <arg name='restitution' index='2' declared_type='CGFloat' type='f'/>
11
+ <arg name='density' index='3' declared_type='CGFloat' type='f'/>
12
+ <arg name='isSensor' index='4' declared_type='BOOL' type='B'/>
13
+ <retval declared_type='void' type='v'/>
14
+ </method>
15
+ <method selector='angle'>
16
+ <retval declared_type='CGFloat' type='f'/>
17
+ </method>
18
+ <method selector='applyForce:atLocation:asImpulse:'>
19
+ <arg name='force' index='0' declared_type='CGPoint' type='{CGPoint=ff}'/>
20
+ <arg name='location' index='1' declared_type='CGPoint' type='{CGPoint=ff}'/>
21
+ <arg name='asImpulse' index='2' declared_type='BOOL' type='B'/>
22
+ <retval declared_type='void' type='v'/>
23
+ </method>
24
+ <method selector='applyTorque:asImpulse:'>
25
+ <arg name='torque' index='0' declared_type='CGFloat' type='f'/>
26
+ <arg name='impulse' index='1' declared_type='BOOL' type='B'/>
27
+ <retval declared_type='void' type='v'/>
28
+ </method>
29
+ <method selector='body'>
30
+ <retval declared_type='int*' type='^i'/>
31
+ </method>
32
+ <method selector='center'>
33
+ <retval declared_type='CGPoint' type='{CGPoint=ff}'/>
34
+ </method>
35
+ <method selector='initWithBody:'>
36
+ <arg name='boxBody' index='0' declared_type='id' type='@'/>
37
+ <retval declared_type='id' type='@'/>
38
+ </method>
39
+ <method selector='isSleepingAllowed'>
40
+ <retval declared_type='BOOL' type='B'/>
41
+ </method>
42
+ <method selector='position'>
43
+ <retval declared_type='CGPoint' type='{CGPoint=ff}'/>
44
+ </method>
45
+ <method selector='setBody:'>
46
+ <arg name='body' index='0' declared_type='int*' type='^i'/>
47
+ <retval declared_type='void' type='v'/>
48
+ </method>
49
+ <method selector='setPosition:'>
50
+ <arg name='position' index='0' declared_type='CGPoint' type='{CGPoint=ff}'/>
51
+ <retval declared_type='void' type='v'/>
52
+ </method>
53
+ <method selector='setSleepingAllowed:'>
54
+ <arg name='isSleepingAllowed' index='0' declared_type='BOOL' type='B'/>
55
+ <retval declared_type='void' type='v'/>
56
+ </method>
57
+ </class>
58
+ <class name='B2DCircleShape'>
59
+ <method selector='initWithRadius:'>
60
+ <arg name='radius' index='0' declared_type='CGFloat' type='f'/>
61
+ <retval declared_type='id' type='@'/>
62
+ </method>
63
+ </class>
64
+ <class name='B2DContactListener'>
65
+ <method selector='beginContact'>
66
+ <retval declared_type='beginContactCallback' type='@?' function_pointer='true'>
67
+ <arg declared_type='B2DBody*' type='@'/>
68
+ <arg declared_type='B2DBody*' type='@'/>
69
+ <arg declared_type='BOOL' type='B'/>
70
+ <retval declared_type='void' type='v'/>
71
+ </retval>
72
+ </method>
73
+ <method selector='contactListener'>
74
+ <retval declared_type='int*' type='^i'/>
75
+ </method>
76
+ <method selector='endContact'>
77
+ <retval declared_type='endContactCallback' type='@?' function_pointer='true'>
78
+ <arg declared_type='B2DBody*' type='@'/>
79
+ <arg declared_type='B2DBody*' type='@'/>
80
+ <retval declared_type='void' type='v'/>
81
+ </retval>
82
+ </method>
83
+ <method selector='setBeginContact:'>
84
+ <arg name='beginContact' index='0' declared_type='beginContactCallback' type='@?' function_pointer='true'>
85
+ <arg declared_type='B2DBody*' type='@'/>
86
+ <arg declared_type='B2DBody*' type='@'/>
87
+ <arg declared_type='BOOL' type='B'/>
88
+ <retval declared_type='void' type='v'/>
89
+ </arg>
90
+ <retval declared_type='void' type='v'/>
91
+ </method>
92
+ <method selector='setContactListener:'>
93
+ <arg name='contactListener' index='0' declared_type='int*' type='^i'/>
94
+ <retval declared_type='void' type='v'/>
95
+ </method>
96
+ <method selector='setEndContact:'>
97
+ <arg name='endContact' index='0' declared_type='endContactCallback' type='@?' function_pointer='true'>
98
+ <arg declared_type='B2DBody*' type='@'/>
99
+ <arg declared_type='B2DBody*' type='@'/>
100
+ <retval declared_type='void' type='v'/>
101
+ </arg>
102
+ <retval declared_type='void' type='v'/>
103
+ </method>
104
+ </class>
105
+ <class name='B2DEdgeShape'>
106
+ <method selector='initWithStartPoint:endPoint:'>
107
+ <arg name='startPoint' index='0' declared_type='CGPoint' type='{CGPoint=ff}'/>
108
+ <arg name='endPoint' index='1' declared_type='CGPoint' type='{CGPoint=ff}'/>
109
+ <retval declared_type='id' type='@'/>
110
+ </method>
111
+ </class>
112
+ <class name='B2DPolygonShape'>
113
+ <method selector='initWithBoxSize:'>
114
+ <arg name='boxSize' index='0' declared_type='CGSize' type='{CGSize=ff}'/>
115
+ <retval declared_type='id' type='@'/>
116
+ </method>
117
+ </class>
118
+ <class name='B2DShape'>
119
+ <method selector='setShape:'>
120
+ <arg name='shape' index='0' declared_type='int*' type='^i'/>
121
+ <retval declared_type='void' type='v'/>
122
+ </method>
123
+ <method selector='shape'>
124
+ <retval declared_type='int*' type='^i'/>
125
+ </method>
126
+ </class>
127
+ <class name='B2DWorld'>
128
+ <method selector='addContactListener:'>
129
+ <arg name='contactListener' index='0' declared_type='B2DContactListener*' type='@'/>
130
+ <retval declared_type='void' type='v'/>
131
+ </method>
132
+ <method selector='allowsSleeping'>
133
+ <retval declared_type='BOOL' type='B'/>
134
+ </method>
135
+ <method selector='continuousPhysics'>
136
+ <retval declared_type='BOOL' type='B'/>
137
+ </method>
138
+ <method selector='createBodyInPosition:type:'>
139
+ <arg name='position' index='0' declared_type='CGPoint' type='{CGPoint=ff}'/>
140
+ <arg name='bodyType' index='1' declared_type='B2DBodyTypes' type='i'/>
141
+ <retval declared_type='B2DBody*' type='@'/>
142
+ </method>
143
+ <method selector='gravity'>
144
+ <retval declared_type='CGPoint' type='{CGPoint=ff}'/>
145
+ </method>
146
+ <method selector='removeBody:'>
147
+ <arg name='body' index='0' declared_type='B2DBody*' type='@'/>
148
+ <retval declared_type='void' type='v'/>
149
+ </method>
150
+ <method selector='setAllowsSleeping:'>
151
+ <arg name='allowsSleeping' index='0' declared_type='BOOL' type='B'/>
152
+ <retval declared_type='void' type='v'/>
153
+ </method>
154
+ <method selector='setContinuousPhysics:'>
155
+ <arg name='continuousPhysics' index='0' declared_type='BOOL' type='B'/>
156
+ <retval declared_type='void' type='v'/>
157
+ </method>
158
+ <method selector='setGravity:'>
159
+ <arg name='gravity' index='0' declared_type='CGPoint' type='{CGPoint=ff}'/>
160
+ <retval declared_type='void' type='v'/>
161
+ </method>
162
+ <method selector='setWorld:'>
163
+ <arg name='world' index='0' declared_type='int*' type='^i'/>
164
+ <retval declared_type='void' type='v'/>
165
+ </method>
166
+ <method selector='stepWithDelta:velocityInteractions:positionInteractions:'>
167
+ <arg name='delta' index='0' declared_type='CGFloat' type='f'/>
168
+ <arg name='velocityInteractions' index='1' declared_type='int' type='i'/>
169
+ <arg name='positionInteractions' index='2' declared_type='int' type='i'/>
170
+ <retval declared_type='void' type='v'/>
171
+ </method>
172
+ <method selector='world'>
173
+ <retval declared_type='int*' type='^i'/>
174
+ </method>
175
+ </class>
176
+ </signatures>
@@ -3,7 +3,7 @@
3
3
  // CBBox2D
4
4
  //
5
5
  // Created by Juan Jose Karam on 2/17/13.
6
- // Copyright (c) 2013 CurveBeryl. All rights reserved.
6
+ // Copyright (c) 2013 Joybox. All rights reserved.
7
7
  //
8
8
  // Inspired by:
9
9
  //
@@ -3,7 +3,7 @@
3
3
  // Box2D
4
4
  //
5
5
  // Created by Kenichi Yonekawa on 13/04/24.
6
- // Copyright (c) 2013 CurveBeryl. All rights reserved.
6
+ // Copyright (c) 2013 Joybox. All rights reserved.
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>
@@ -3,7 +3,7 @@
3
3
  // Box2D
4
4
  //
5
5
  // Created by Juan Jose Karam on 3/6/13.
6
- // Copyright (c) 2013 CurveBeryl. All rights reserved.
6
+ // Copyright (c) 2013 Joybox. All rights reserved.
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>
@@ -16,7 +16,6 @@ typedef void (^endContactCallback)(B2DBody *firstBody, B2DBody *secondBody);
16
16
 
17
17
 
18
18
  @interface B2DContactListener : NSObject {
19
-
20
19
  ContactListener *contactListener;
21
20
  beginContactCallback beginContact;
22
21
  endContactCallback endContact;
@@ -3,7 +3,7 @@
3
3
  // Box2D
4
4
  //
5
5
  // Created by Juan Jose Karam on 2/19/13.
6
- // Copyright (c) 2013 CurveBeryl. All rights reserved.
6
+ // Copyright (c) 2013 Joybox. All rights reserved.
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>