Если у вас нет веских оснований, иметь разные компоненты для каждой плитки, вероятно, не очень хороший путь.Посмотрите на холст и отображать загруженные изображения с различными смещениями в нем.
Пример: 480x640 Файл изображения Canvas 128x16 (содержит 8 изображений мозаичного размера 16x16). Таким образом, в вашем файле имеется набор чисел (символов и т. Д.), Мы скажем 0-7 для 8 плиток изображения.Файл имеет номера 30x40, размещенные в сетке так же, как холст.Итак,
1 2 1 3 4 8 2 ... ...
И отображение кода заканчивается примерно так (не проверено, основано на документах )
Graphics g = //initialize graphics;
Image yourTileImage = //load your image;
for (int xpos = 0; xpos < maxX; xpos++)
for (int ypos = 0; ; ypos < maxY; ypos++)
int number = //get number from map file
g.drawImage(Image yourTileImage,
xpos * 16, ypos * 16, xpos * 16 + 15, ypos * 16 + 15,
number*16, 0, number+15, 15,
ImageObserver observer)
, который в основном сопоставляет число с вашим изображением плитки, затем помещает это изображение плитки в правильное место в координатах холста (x, y) * размера плитки.