Version History



Cocos 2D

Ricardo Quesada, Zynga and contributors


Erin Catto and contributors


02 AUG 2013

Joybox 1.1.0

After two months from our last release, 1.1.0 is finally here! It contains a lot of new features and bug fixes that will help to make the game development experience more enjoyable.

But first we want so say thank you to all the contributors of this version for their pull requests or bug reports, continue being awesome!

  • Kenichi Yonekawa, yonekawa
  • Earl St Sauver, estsauver
  • Denis Laprise, nside
  • Franklin Webber, burtlo
  • Andrew Currie, AndrewCurrie
  • Jamon Holmgren, jamonholmgren
  • Christopher David Yudichak, TheOddLinguist
  • Donald Hutchison, rkachowski
  • Didier Prophete, dprophete
  • Severin Schoepke, severin
  • awdogsgo2heaven
  • Juha Litola, jlitola
  • David Padilla, dabit
  • PanPan, ippan
  • Keyvan Fatehi, keyvanfatehi
  • n-studio

Also we want to announce that Joybox now have a Google Groups in order to make easier to find help, and a G+ Community created by Evgeny Gorbachev in which He upload some amazing examples, thank you Evgeny!


The only thing needs to be done is to update the gem:

gem update joybox

Now the commands and templates are installed automatically, so there is no need to run anything else. Thank you Watson!

Web Site

We think the Joybox site deserve a little make over, to include a more complete documentation, some tutorials and also a special space for recognizing the people that makes this project special. We hope that you like it and find it useful!

Also from our own experience some times it's needed to have the documentation locally, thats why we think it was a good idea to have a docset, so here it is: Joybox Docset. Also if you want to be included by default in Dash, you can request it here: Dash Contact.

Finally we want to thank our awesome designer: Sandra de la Re for the effort and the passion that she invested in the project.

To Delisa Mason and Colin T.A. Gray for helping us reviewing the documentation, and our english >_<


The physics module of Joybox was a little behind from the rest, well we improve it the best we can adding the following features to it:

  • All the methods available in World, Body, Fixture, Shape. And now all of them respond on pixel coordinates instead of metric system.

  • Complete support for all the Shapes and Listeners!

  • New features added like Filter's, AABB computations and more.

  • What is a physics environment without ray casts and queries? Now they are included as well.

  • Evolve on collision detection system to support physics sprites. No more crazy body identification.

  • You asked and we listen. Experimental support for actions on physics sprites!

But thats not all of it! We included a debug support for the Physics Environment allowing it to draw the entire physics world and manipulate it through the REPL, here is a little video:

For more information on this new features or how to enable the Physics Debug, see: Joybox Documentation

Effects and Background Music

A little late on this one, but now is available! Add background music or special effects to your game with this Audio related classes: BackgroundAudio and AudioEffect.

Tile Maps Support

This version add support for the famous tool to create TMX maps: Tiled. Design your game levels, add some collisions or collectables on this awesome tool and then import them to your game as easy as presenting a Sprite.


Finally they are complete! From a simple to a Wave 3D, all of them are included in this version:



A little upgrade to the user interaction on the Mac adding the Magnify, Smart Magnify, Rotate and Swipe gestures!

For more information, see: Layer documentation page.


In this version is included another command for creating a retina version of the TMX Map!

$ motion joybox:retina map.tmx

It can also create a retina version of any image you pass as parameter, this is only for testing purposes so you don't have to scale them manually!


Now is supported to store information on the sprite for later use:

# You can add it in the options
sprite = file_name: 'space_ship.png', speed: 200, health: 10

# Or a time after
sprite[:boost] = 'heavy'

# And retrieve and update them
sprite[:health] -= 10

For more information, see: Sprite documentation page.

Source Code

Here are the source code improvements to Joybox:

  • Improved code style and readability.

  • Increased performance in certain places where it was needed.

  • Removed the joybox install command, now the templates and commands are automatically installed.

  • Added 218 specifications and 617 requirements (about 75% of the project) to guaranty compatibility and increase the documentation available.

Critical Changes

For all of this to happen, some changes have to be made:


The method add_childs is now add_children.


Now the method where starts from 1 instead of 0.


The method delay is now delay_units, and total_Delay is now delay_per_unit.

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


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.


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. Example:

@world.when_colide physics_sprite do |collision_sprite, is_touching|


If you still need to get the collisions of the physics bodies you can use the following:

@world.on_collision do |first_body, second_body, is_touching|



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