gosu-tiled
Tiled map loader for Gosu game development library.
How to use it?
Install the gem:
gem install gosu_tiled
Create yourself a game map with Tiled:
Create your TMX, make sure "Tile Layer Format" is set to "CSV" and your tilesets are embedded, then export it as JSON and use with Gosu like this:
require 'gosu'
require 'gosu_tiled'
class GameWindow < Gosu::Window
def initialize
super(800, 600, false)
@map = Gosu::Tiled.load_json(self, 'path/to/map.json')
@x = @y = 0
@speed = 3
end
def update
@x -= @speed if button_down?(Gosu::KbLeft)
@x += @speed if button_down?(Gosu::KbRight)
@y -= @speed if button_down?(Gosu::KbUp)
@y += @speed if button_down?(Gosu::KbDown)
end
def draw
@map.draw(@x, @y)
end
end
GameWindow.new.show
Run it and enjoy your game map:
See full example code.
TODO
- Caching and other performance improvements
Why JSON and not TMX?
- TMX is based on XML
- XML is a terrible format that should be extinct
- XML parsing in Ruby is done with Nokogiri, which is a heavy library
- JSON is simple and elegant
Contributing
- Read CONTRIBUTING.md
- Fork it ( https://github.com/spajus/gosu-tiled/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request