1

我正在进入简单的 NDS 开发。我正在尝试构建一个简单的游戏。我像按钮一样构建(像精灵一样处理)并试图在屏幕上显示它。结果如下:这是 no$gba 显示的内容。我遵循了本教程:https ://gbatemp.net/threads/ds-programming-for-newbies.322106/page-8#post-4445495还有这个stackoverflow:如何使用nflib在Nintendo DS的屏幕上显示精灵? . 我在这里发布代码:

#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;
}

我也尝试发布精灵(我通过运行 convert_sprites bat 文件用 grit 进行了转换。 这是我用 photoshop(128x80)快速创建的 bmp 格式的精灵 (就像模拟器只显示圆形的“白色”部分)按钮)。调色板文件:https : //file.io/rcaKNpF4ODCt 砂砾产生的 IMG 文件: https ://file.io/pNuZH9b8Avvl

谢谢你的帮助!祝你今天过得愉快!

4

0 回答 0