gpt4 book ai didi

nintendo-ds - 在 nds 的子屏幕上绘制图像

转载 作者:行者123 更新时间:2023-12-01 04:12:30 27 4
gpt4 key购买 nike

我对 libdns 完全陌生。我尝试更改示例 Graphics\Backgrounds\256_color_bmp
在子屏幕上显示背景。

这是我的代码。您知道在子屏幕上显示 hey_typBitmap 缺少什么吗?我已经设法在顶部屏幕上显示新图像。

#include <nds.h>
#include <stdio.h>
#include "drunkenlogo.h"
#include "hey_typ.h"

int main(void)
{
videoSetMode(MODE_5_2D);
vramSetBankA(VRAM_A_MAIN_BG_0x06000000);

videoSetModeSub(MODE_5_2D);
vramSetBankC(VRAM_C_SUB_BG_0x06200000);

int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);
dmaCopy(hey_typBitmap, bgGetGfxPtr(bg3), 256*256);
dmaCopy(hey_typPal, BG_PALETTE, 256*2);

int bg2 = bgInit(2, BgType_Bmp8, BgSize_B8_256x256, 0,0);
dmaCopy(drunkenlogoBitmap, bgGetGfxPtr(bg2), 256*256);
dmaCopy(drunkenlogoPal, BG_PALETTE, 256*2);

while(1)swiWaitForVBlank();

return 0;
}

最佳答案

mode 5 DS 有 3 个可用的背景层,并调用 bgInit with 2 返回对同一屏幕上不同图层的引用。如果要在子屏幕上使用图层,请使用 bgInitSub .

也有 2 个调色板;一个在主屏幕上,另一个在子屏幕上。子屏幕调色板位于 BG_PALETTE_SUB .

希望此代码将在第二个屏幕上显示图像(标记为 /* ! */ 的更改):

int main(void)
{
videoSetMode(MODE_5_2D);
vramSetBankA(VRAM_A_MAIN_BG_0x06000000);

videoSetModeSub(MODE_5_2D);
vramSetBankC(VRAM_C_SUB_BG_0x06200000);

int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);
dmaCopy(hey_typBitmap, bgGetGfxPtr(bg3), 256*256);
dmaCopy(hey_typPal, BG_PALETTE, 256*2);

int bg3sub = bgInitSub(3, BgType_Bmp8, BgSize_B8_256x256, 0,0); /* ! */
dmaCopy(drunkenlogoBitmap, bgGetGfxPtr(bg3sub), 256*256); /* ! */
dmaCopy(drunkenlogoPal, BG_PALETTE_SUB, 256*2); /* ! */

while(1)swiWaitForVBlank();

return 0;
}

关于nintendo-ds - 在 nds 的子屏幕上绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5410762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com