From f97a9ca95e464e728bba9337b579bc380c33bc7d Mon Sep 17 00:00:00 2001 From: realtradam Date: Thu, 20 May 2021 05:04:21 -0400 Subject: implemented hitboxes --- app/lib/helpers/00_tileset.rb | 49 ++++++++++++++++++++++++++ app/lib/helpers/01_component.rb | 76 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 app/lib/helpers/00_tileset.rb create mode 100644 app/lib/helpers/01_component.rb (limited to 'app/lib/helpers') diff --git a/app/lib/helpers/00_tileset.rb b/app/lib/helpers/00_tileset.rb new file mode 100644 index 0000000..3890550 --- /dev/null +++ b/app/lib/helpers/00_tileset.rb @@ -0,0 +1,49 @@ +class Helper + # Returns a loaded map and its dependecies(images,json) + # If any are missing then it will load them from files + + @json_data = {} + class < 1 + return {} + end + + json_tiles = self.get_json_tiles(json_name) + raise Exception.new "Error, json file not a tileset" unless json_tiles['type'] == 'tileset' + return tile_index - json_tiles['tilecount'] if tile_index > json_tiles['tilecount'] + source_height_tiles = (tile_index.to_i / json_tiles['columns'].to_i).to_i# * json_tiles['tileheight'] + { w: json_tiles['tilewidth'], + h: json_tiles['tileheight'], + path: json_tiles['image'].split('mygame/').last.delete('\\'), + source_x: [((tile_index % json_tiles['columns']) - 1) * json_tiles['tilewidth'], 0].max, + # source_y gets special treatment + source_y: [json_tiles['imageheight'] - ((source_height_tiles + 1) * json_tiles['tileheight']), 0].max, + source_w: json_tiles['tilewidth'], + source_h: json_tiles['tileheight'] } + end + end +end diff --git a/app/lib/helpers/01_component.rb b/app/lib/helpers/01_component.rb new file mode 100644 index 0000000..4937ec9 --- /dev/null +++ b/app/lib/helpers/01_component.rb @@ -0,0 +1,76 @@ +class Helper + class BaseComponent + class <