Как я могу отображать спрайты на экране Nintendo DS с помощью nflib?
Документация, которую я нахожу в Интернете, расплывчата. Единственный хороший форум, который я нашел, был https://gbatemp.net/threads/ds-programming-for-newbies.322106/page-8#post-4445495 . Я следил за кодом на экране, я сделал спрайт (16 x 16, 256 цветов) и написал код. Кажется, что спрайт не отображается, все, что я получаю, это черный верхний экран и белый нижний экран на моем физическом DSi. Desmume выдает сообщение «Недопустимый заголовок ROM. Размер устройства увеличился для указанного размера файла». Я что-то упускаю? Я действительно не могу найти то, что мне не хватает, так как я пытаюсь написать код для консоли 15-летней давности, поэтому, если кто-то знает, что я делаю не так, пожалуйста, сообщите мне. Имена файлов в папке нитрофилей - «stickman.img» и «stickman.pal». Вот мой код:
#include <gl2d.h>
#include <nds.h>
#include <nf_lib.h>
#include <stdio.h>
int main(int argc, char **argv){
NF_Set2D(0, 0);
NF_SetRootFolder("NITROFS");
NF_InitSpriteBuffers();
NF_InitSpriteSys(0);
NF_LoadSpriteGfx("stickman", 0, 16, 16);
NF_LoadSpritePal("stickman", 0);
NF_VramSpriteGfx(0, 0, 0, false);
NF_VramSpritePal(0, 0, 0);
while(1) {
NF_SpriteOamSet(0);
swiWaitForVBlank();
oamUpdate(&oamMain);
}
return 0;
}
1 ответ
Вы не создали спрайт.
Использовать
NF_CreateSprite()
, Например:
NF_CreateSprite(0, 0, 0, 0, 8, 16);
После создания спрайта обновите oam.