Fiz ela utilizando Python e com a biblioteca PIL (Python Imaging Library). O objetivo é juntar 1 conjunto de tiles em uma imagem só para que você possa utilizar no programa Tiled ou no próprio Mappy para gerar seus próprios mapas.
Ok e como funciona?
# -*- coding: cp1252 -*-
import glob
import os
from PIL import Image
# Altere aqui as principais variaveis
#O caminho da pasta de tileset
caminhoPasta = ".\\Tiles Agrupar"
#Tamanho do tile em x
tamTileCol = 64
#Tamanho do tile em y
tamTileLin = 64
#Quantos tiles voce quer por linha no tileset final
nTilesLinha = 10
#Nome do arquivo final
nomeArquivo = "tilesetCompleto.png"
nTiles = 0
TAMC = tamTileCol*2
TAML = (nTilesLinha)*tamTileCol
#Vai até a pasta dos tiles
os.chdir(caminhoPasta)
#Localiza todos os arquivos png na pasta dos tiles
lArquivos = glob.glob("*.png")
nTiles = len(lArquivos)
#Redimensiona a imagem pro tamanho que é indicado no arquivo
print "Vou trabalhar com "+ str(nTiles) +" tiles no total"
tamLinhasFinal = TAML
tamColunasFinal = ((nTiles/nTilesLinha))*tamTileLin + tamTileCol
print "O tileset tera :" + str(tamLinhasFinal) + " , " + str(tamColunasFinal)
#Faz a gambiarra pra ter uma imagem do tamanho necessario
img = Image.open('C:\Users\PamNawi\Desktop\Tileset Assembler\pix.png')
img = img.convert("RGBA")
print("Vou dar resize na imagem do tileset")
imgFinal = img.resize((tamLinhasFinal, tamColunasFinal),Image.ANTIALIAS)
#damos bind da imagem para a variável pixdata
pixdata = imgFinal.load()
#Percorre cada arquivo .png
i = 0
for files in lArquivos:
print "Vou trabalhar com o arquivo " + str(files) +" "+str(i)
imgTile = Image.open(files)
imgTile = imgTile.convert("RGBA")
tilePixdata = imgTile.load()
#Faz o calculo do offset pra posicionar no tileset
print i/nTilesLinha
linhaIni = (i/nTilesLinha)*tamTileLin
colunaIni = i % nTilesLinha *tamTileCol
print str(linhaIni) +" " + str(colunaIni)
#Faz a cópia do tile no tileset
for y in xrange(imgTile.size[1]):
for x in xrange(imgTile.size[0]):
pixdata[colunaIni+x,linhaIni+y] = tilePixdata[x,y]
i+= 1
#Salva o tileset
imgFinal.save("..//"+nomeArquivo,"PNG")
print "Terminei a montagem do tileset"
Ainda essa semana quero ver se crio 1 Tileset Slicer, mas prefiro o nome em português, como Fatiador de Tileset. Depois que eu termina-la, posto pra vocês darem uma olhada.
Nenhum comentário:
Postar um comentário