Инициализация (Выполняется при старте игры). Сюда мы поместим загрузку текстуры. Событие initRwEvent.
Рисование (выполняется в цикле игры). Здесь будет вывод текстуры на экран. Событие drawingEvent.
Закрытие (выполняется при закрытии игры). Сюда поместим удаление текстуры. Событие shutdownRwEvent.
Для работы с текстурой мы будет использовать модуль CSprite2d. Мы создадим переменную-объект класса CSprite2d:
static CSprite2d mySprite;
Устанавливаем пространство имен plugin, чтобы не писать plugin::...
using namespace plugin;
Рассмотрим код, который мы добавляем в события.
Events::initRwEvent += [] {
// Добавляем новый слот для нашего txd
int txd = CTxdStore::AddTxdSlot("mytxd");
// Загружаем наш txd в выделенный слот
CTxdStore::LoadTxd(txd, "MODELS\\MYTXD.TXD");
// Увеличиваем счётчик использований для созданного txd
CTxdStore::AddRef(txd);
// Сохраняем текущий txd
CTxdStore::PushCurrentTxd();
// Устанавливаем наш txd как текущий
CTxdStore::SetCurrentTxd(txd);
// Назначаем текстру нашему спрайту
mySprite.SetTexture("tex", "texA");
// Восстанавливаем сохранённый txd
CTxdStore::PopCurrentTxd();
};
Для установки текстуры спрайту, нам нужно установить txd, в котором находится нужная текстура, как текущий. Поэтому мы сохраняем поточный текущий txd, а после установки текстуры спрайту - восстанавливаем его.