Атлас спрайтов: как загружать, маппить?

Комплексный вопрос. И так, есть png'шка на которой кучас тайлов 30x30. Я с помощью Sprite Editor все это порезал и получил атлас (я правильно называю сущьность?):

2f5ZV.jpg

Далее, мне хотелось бы каждый элемент атласа как-то замаппить на константы:

public class TileMap
{
    public const string GROUND_DESERT = "desert";
    public const string GROUND_GREEN_GRASS = "green_grass";
    public const string GROUND_SANDY_LOAM = "sandy_loam";


    // Common roads
    public const byte NEW_VERT_ROAD = 1;
    public const byte NEW_HORZ_ROAD = 2;
    public const byte BRK_VERT_ROAD = 3;
    public const byte BRK_HORZ_ROAD = 4;
    public const byte RSD_HORZ_ROAD = 6;
    public const byte CROSS_ROAD    = 8;

    // Rotated roads
    public const byte RTT_BOTTOM_RIGHT_ROAD = 10;
    public const byte RTT_BOTTOM_LEFT_ROAD = 11;
    public const byte RTT_TOP_LEFT_ROAD = 12;
    public const byte RTT_TOP_RIGHT_ROAD = 13;

    // Decor
    public const byte GREENERY_BUSH = 15;
    public const byte GREENERY_TREE_1 = 16;
    public const byte GREENERY_TREE_2 = 17;
    public const byte GREENERY_TREE_3 = 18;

    // ......
}


Для того, что бы мне присылали CSV с этими значениями, уже после по ним я рендерил эти спрайты.

Итого: как загружать атлас, потом использовать, предварительно замаппив на константы?
  • Вопрос задан
  • 1907 просмотров
Решения вопроса 2
@Neuyazvimy1
Для начала вам нужен tile map editor. Можно использовать этот. А далее собирать уже сцену из текстового файла.
Ответ написан
Комментировать
@tomatho
Если я правильно понял, охото
Draw(GREENERY_BUSH)
При этом иметь возможность в каком-то CSV указать в строке номер тайла.
Ну так почему бы не сделать:
const int MAX_ID = 123;          // MAX_ID - первый неиспользуемый номер
                                 // извините не придумал лучше имя массиву
private string convert[MAX_ID];  // подразумеваю что "настоящий" идентификатор тайла имеет тип string.
private DrawInternal(string id)
{
    // тут обычный код для отрисовки
}
public void Draw(int id)
{
    DrawInternal(convert[id]); // подставляем нужный id
}
public void loadCSV(/* параметры */)
{
    // грузим CSV и формируем convert массив
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы