55 lines
1.4 KiB
C++
55 lines
1.4 KiB
C++
#include "palette.h"
|
|
#include "defines.h"
|
|
#include <SDL3/SDL.h>
|
|
|
|
void init()
|
|
{
|
|
Palette::init("demo6_palette", WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_ZOOM);
|
|
Palette::Surface peiv = Palette::loadSurface("resources/williams.gif");
|
|
Palette::loadPalette("resources/pal01.gif");
|
|
Palette::setSrc(peiv);
|
|
}
|
|
|
|
void update()
|
|
{
|
|
const int FRAME = (SDL_GetTicks() / ANIMATION_SPEED) % NUM_FRAMES;
|
|
Palette::setPalette(255, 0xFF444466);
|
|
Palette::clear(255);
|
|
Palette::blit(SPRITE_POS_X, SPRITE_POS_Y, FRAME * SPRITE_WIDTH, 0, SPRITE_WIDTH, SPRITE_HEIGHT);
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
init();
|
|
SDL_Event event;
|
|
bool should_exit = false;
|
|
while (!should_exit)
|
|
{
|
|
while (SDL_PollEvent(&event))
|
|
{
|
|
// Evento de salida
|
|
if (event.type == SDL_EVENT_QUIT)
|
|
{
|
|
should_exit = true;
|
|
break;
|
|
}
|
|
|
|
// Eventos de teclado
|
|
if (event.type == SDL_EVENT_KEY_DOWN && event.key.repeat == 0)
|
|
{
|
|
switch (event.key.key)
|
|
{
|
|
case SDLK_ESCAPE:
|
|
should_exit = true;
|
|
break;
|
|
|
|
case SDLK_SPACE:
|
|
Palette::switchPalette();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
update();
|
|
Palette::flip();
|
|
}
|
|
} |