Skip to content

Instantly share code, notes, and snippets.

@alketii
Created June 23, 2015 14:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alketii/430c0c5077d256bdcc57 to your computer and use it in GitHub Desktop.
Save alketii/430c0c5077d256bdcc57 to your computer and use it in GitHub Desktop.
Map Render 0.1
extends Node2D
var cell_id = 0
var map_data = {}
var map_width
var map_height
var tileset = []
var layers
var cell_sprite
func render_tiles(x):
cell_id = 0
for layer in layers:
if layer.name == x:
for y in range(0,map_height):
for x in range(0,map_width):
var sprite = Sprite.new()
cell_sprite = int(layer.data[cell_id])
if cell_sprite != 0:
var texture = load("res://"+tileset[cell_sprite-1])
sprite.set_texture(texture)
sprite.set_name("sprite_"+str(cell_id))
sprite.set_pos(Vector2(x*32,y*32))
add_child(sprite)
cell_id += 1
func _ready():
#load json into map_data
var json = File.new()
json.open("res://map.json",1)
map_data.parse_json(json.get_as_text())
#get map width and height
map_width = map_data["width"]
map_height = map_data["height"]
#get assets, FIXME: not parsed with json, this is a workaround
var tileString = str(map_data["tilesets"][0].tiles)
var tileArray = tileString.split(",")
var tile_file
for tile in tileArray:
tile_file = tile.split(":")[2]
tile_file = tile_file.substr(0,tile_file.length()-2)
tileset.append(tile_file)
#layers
layers = map_data["layers"]
render_tiles("ground")
render_tiles("water")
#render_tiles("trees")
#render_tiles("trees_top")
#render_tiles("gold")
#render_tiles("decorative")
#render_tiles("obstacles")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment