SGDK. Создание изображения.

Импортируем картинку в SGDK.

Первым делом, скачайте основу нашего проекта.

  1. Теперь, скачайте картинку с MEGA.
  2. Затем, создайте текстовый файл 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

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!