Импортируем картинку в SGDK.
Первым делом, скачайте основу нашего проекта.
- Теперь, скачайте картинку с MEGA.
- Затем, создайте текстовый файл resources.res
Поместите их в папку res, в директории вашего проекта. Все ресурсы SGDK, такие как музыка, изображения, мы будем помещать в папку res.
Внутри resources.res, напишите следующее.
IMAGE img "image.png" BEST
Синтаксис тут следующий
Тип имя "путь_до_файла" тип_сжатия
Т.е. к изображению image.png мы будем обращаться в коде по имени img, сжатие выбрали самое лучшее BEST.
Подробнее про ресурсы вы можете узнать в recomp.txt, находящийся в SGDK\bin
Пишем код.
Теперь, в main.c напишите следующий код.
#include <genesis.h>
#include "resources.h"
int main()
{
VDP_drawImage(BG_A, &img, 0, 0);
while(1)
{
SYS_doVBlankProcess();
}
return (0);
}
Разберем код.
#include "resources.h"
resources.h создается автоматически в процессе компиляции, мы его импортировали и теперь, имеем доступ к ресурсам.
VDP_drawImage(BG_A, &img, 0, 0);
VDP_drawImage — рисует изображение на экране, синтаксис у него следующий.
VDP_drawImage(слой, изображение, тайл_x, тайл_y);
- слой — указывает слой, на котором установлено изображение (BG_A или BG_B)
- изображение — объект изображения, имя которого мы указали в resources.res
- тайл_x, тайл_y — координаты изображения на тайловой сетке (1 тайл = 8×8 px)
Далее, запускаем бесконечный цикл.
while(1)
{
SYS_doVBlankProcess();
}
Теперь скомпилируйте (запустите файл compile.bat). И запустите ром, должно получится следующее.
На всякий случай, готовый проект лежит на MEGA.
Создаем собственное изображение.
Sega Genesis способна хранить 4 палитры по 16 цветов. Это значит, что нам потребуется изображения, с палитрой в 16 цветов.
Для создания изображения нам потребуется paint.net. Нарисуйте там изображение с разрешением 320×240 (разрешение Sega Genesis), и сохраните в png. В окне «Параметры сохранения» выберите глубину цвета в 4 бита, таким образом, палитра изображения сократится до 16-ти цветов. И нажмите ОК.
Исходный код доступен на github