Рисуем

Рисование на экране с plugin-sdk.

В данной статье ознакомимся с рисованием в Plugin-SDK. Нам понадобятся следующие хедеры:

#include "plugin.h" 
#include "CSprite2d.h" 
#include "CTxdStore.h"

Мы разделим наш код на 3 части:

  • Инициализация (Выполняется при старте игры). Сюда мы поместим загрузку текстуры. Событие 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, а после установки текстуры спрайту - восстанавливаем его.

Отрисовка:

Удаление:

Весь код:

Автор: DK22Pac

Last updated

Was this helpful?