Нинтендо ДС. Ошибка отображения простого спрайта с использованием NightFoxLib

Я вхожу в простую разработку NDS. Я пытаюсь создать простую игру. Я создал кнопку (которая обрабатывается как спрайт) и попытался показать ее на экране. Вот результат: вот что показывает no$gba . Я следовал этому руководству: https://gbatemp.net/threads/ds-programming-for-newbies.322106/page-8#post-4445495 , а также этому stackoverflow: Как отображать спрайты на экране на Nintendo DS с помощью nflib?. Я размещаю код здесь:

      #include <cstdio> // useless for this question
#include <cstdlib> // useless for this question
#include <ctime> // useless for this question
#include <fstream> // useless for this question
#include <nds.h> 
#include <nf_lib.h>
#include "commands.h" // useless for this question
#define DECKSOFCARDS 8 // useless for this question

using namespace std;

int main() {
    // Turn on MODE 0 on the Top Screen
    NF_Set2D(0, 0);

    // Set the Root Folder
    NF_SetRootFolder("NITROFS");

    // Initialize the Tiled Backgrounds System on the Top Screen
    NF_InitTiledBgBuffers();
    NF_InitTiledBgSys(0);

    // Initialize the Tiled Sprites System on the Bottom Screen
    NF_InitSpriteBuffers();
    NF_InitSpriteSys(0);


    // Load our Tiled Sprite
    NF_LoadSpriteGfx("buttonplay", 0, 128, 80);// Tempy!
    NF_LoadSpritePal("palette", 0);

    // Transfer our sprite to VRAM
    NF_VramSpriteGfx(0, 0, 0, false);
    NF_VramSpritePal(0, 0, 0);

    // Create the Sprite!
    NF_CreateSprite(0, 0, 0, 0, 10, 20);

    while (1) {
        //Update NF OAM Settings
        NF_SpriteOamSet(0);
        swiWaitForVBlank();
        //Update OAM!
        oamUpdate(&oamMain);
    }
    return 0;
}

Я тоже пытаюсь выложить спрайт (я конвертировал с помощью зернистости, запустив bat-файл convert_sprites. Вот спрайт в формате bmp, который я создал очень быстро с помощью фотошопа (128x80)(это похоже на то, что эмулятор показывает только "белую" часть закругленного Кнопка . _)

Спасибо за вашу помощь! Хорошего дня!

1 ответ

Возможно, это связано с тем, что ваше изображение имеет неправильный размер. Вам нужно сделать изображение с высотой и шириной, которые можно разделить на 256

Другие вопросы по тегам