Cocos2D & Box2D Wrapper for Ruby Motion - Currently out of date an unmaintained :-(
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Adds: Jul 28, 2013
command Fix command example message Nov 2, 2013
ext mend Jul 21, 2013
lib Fix: Sep 9, 2013
motion Merge pull request #59 from meganemura/add-layer-gradient Nov 12, 2013
resources Adds: Jul 28, 2013
spec Add `Joybox::Core::LayerGradient` Oct 14, 2013
template Adds: Jul 21, 2013
vendor Adds: Jul 9, 2013
.gitignore Adds: Feb 24, 2013
.travis.yml Fix: Jul 28, 2013
Gemfile Adds: Jun 26, 2013
Gemfile.lock Adds: Jul 28, 2013
LICENSE Adds: May 8, 2013
LICENSE_Box2D Adds May 6, 2013
LICENSE_Cocos2D Adds May 6, 2013 Updated README Dec 13, 2014
Rakefile Adds: Jun 29, 2013
joybox.gemspec Fix: Sep 9, 2013

Joybox Build Status

Currently this project is unmaintained, if you are interested in picking it up please open an issue and let us know! In the meantime take a look at SpriteKit and SceneKit for iOS and OS X.

Introduced at #Inspect 2013, Joybox is the easiest way to build 2D games for iPhones and iPads using RubyMotion. Joybox combines the most popular and widely used 2D game engine for iOS, Cocos2D, folds in the amazing Box2D physics engine, and then wraps them up into a clean Ruby API that will make game development faster and more enjoyable for both beginners and experts alike.

For more information, see the presentation: Cocos2D, an Easier Way.

Latest version (1.1.0)


  • Support for all Shapes and Listeners.
  • Filters, AABB computations, Queries and Ray Casts.
  • Collision support for Physics Sprites.
  • Experimental support for actions on Physics Sprites.
  • Physics Debug Draw.

Effects and Background Music

  • AudioEffect and BackgroundAudio to playback background music and special effects.

Tile Maps Support

  • Support for TMX Maps using the TileMap class.


  • Complete actions


  • Support the default gestures on OSX.


  • Adds joybox:retina command to create a Retina version of a TMX Map.


  • Support for custom options on the Sprite initialization.

Source Code

  • The commands and templates now install automatically.
  • Added 218 specifications and 617 requirements.

Critical Changes

  • Node: The method add_childs is now add_children.

  • SpriteFrameCache: The method where now starts from 1 instead of 0.

  • Animation: The delay method is now delay_units, and total_delay is now delay_per_unit.

  • Menu: The method align_items_in_columns now receive an array for defining how many columns and how many items in which of them.

  • Physics: Now every object returns their values in pixel coordinates and degrees, if you still need to use the metric values you can access them with the prefix metric_. For example: metric_position.

  • World: The Method continuos_physics is now deprecated.

  • Physics Collisions: Now for use when_collide method of the World instance, you need to pass an instance of a PhysicsSprite and it will return in the block the colliding physics sprite if available, or the body that is colliding.

  • Point: The methods to and from pixel coordinates are now inverted, there was an incorrect naming.

Documentation and Getting Started

If you are looking for the installation process and the documentation, please visit:

Also you can look at some examples in this repository: Joybox - Examples

Troubleshoot Installation

If you run into troubles running your Joybox game, please do the following, in the root folder of your project:

gem uninstall joybox -a

gem install joybox

rm .repl_history

rake clean


Troubleshoot the REPL

If the iOS application starts in landscape orientation, please rotate and return it to the original orientation.

(cmd + <= & cmd + =>)

Feedback and Help

For questions and feedback use the project's Google Group

For bug reports use the project's Issue Tracker.


If you wish to help us to stop the madness, there are some ways you can do it:

To contribute just:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


Joybox is released under the MIT License.


Cocos2D: Ricardo Quesada, Zynga and contributors cocos2d for iPhone

Box2D: Erin Catto Box2D | A 2D Physics Engine for Games

Joybox: Juan José Karam @JuanKaram and Gabriel Sosa @mexinsane and contributors