Game Boy Advanced Home варево проблема изображения в C

Я делаю gba для домашнего приготовления просто для удовольствия, и у меня возникла небольшая проблема, я могу хорошо нарисовать изображение на экране, и я могу читать ввод с клавиатуры, ожидать, когда я пытаюсь отобразить другое изображение, когда пользователь нажимает ENTER, который отображается на кнопку START в используемом мной эмуляторе (Visual Boy Advanced), ничего не происходит, при компиляции игры нет ошибок, поэтому я понятия не имею, что не так, пожалуйста, обратите внимание, что я только что вошел в это и Я не знаю много, я кто-то знает, как заставить это работать, я был бы очень счастлив:D

Вот мой код:

typedef unsigned short u16; // two type definitions
typedef unsigned long u32;

#include "ppic.h"
#include "ui.h"
#include "keypad.h"

#define REG_DISPCNT    *(u32*)0x4000000
#define MODE_4 0x4
#define BG2_ENABLE 0x400
u16* paletteMem = (u16*)0x5000000;  
u16* videoBuffer = (u16*)0x6000000; 

void PlotPixel(int x,int y, unsigned short int c) 
{
        videoBuffer[(y) *120 + (x)] = (c);
}

int main(void)
{
        int x, y, blockX, blockY, loop; 

REG_DISPCNT = MODE_4 | BG2_ENABLE; 
for(loop = 0; loop < 256; loop++)   
    paletteMem[loop] = ppicPalette[loop];
while (1) // run forever
{
            if(!((*KEYS) & KEY_START))
            PlotPixel(x,y,uiData[y*120+x]);

    for(y = 0; y < 160; y++)
    {
        for(x = 0; x < 120; x++)
        {
            PlotPixel(x,y,ppicData[y*120+x]);
        }
    }

}
return 0;
}

ui.h - файл заголовка изображения, которое я хочу отобразить, ppic.h - файл заголовка изображения, которое я показываю при запуске.

1 ответ

Решение

Если условие в if утверждение верно, не зацикливаясь на x а также y координата выполнена, вместо этого устанавливается только один пиксель. Кроме того, цикл ниже (который отображает содержимое ppicData) выполняется независимо от условия, поскольку else пропал, отсутствует; следовательно, этот один пиксель перезаписывается.

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