skunkworks-c/examples/gsa_simple.c

63 lines
1.1 KiB
C

#include "color32.h"
#include "error.h"
#include "gamepad.h"
#include "gsa_map.h"
#include "gsa_text.h"
#include "skip.h"
#include "str.h"
#include <gsa.h>
sw_color32 pal[GSA_PALETTE_SIZE];
void fade_palette(f32 amount) {
i32 i;
for(i = 0; i < GSA_PALETTE_SIZE; ++i) {
palette[i] = sw_color32_mix(SW_COLOR32_BLACK, pal[i], amount);
}
}
bool tick_fade_in();
void init() {
i32 x, y;
gsa_copy_palette_to(pal);
for(y = 0; y < 11; ++y) {
for(x = 0; x < 19; ++x) {
maps[0].tiles[x][y] = 0x1000;
}
}
for(y = 0; y < 11; y += 2) {
maps[0].tiles[0][y] = 0x1101;
maps[0].tiles[1][y] = 0x1102;
maps[0].tiles[0][y + 1] = 0x1201;
maps[0].tiles[1][y + 1] = 0x1202;
maps[0].tiles[17][y] = 0x1101;
maps[0].tiles[18][y] = 0x1102;
maps[0].tiles[17][y + 1] = 0x1201;
maps[0].tiles[18][y + 1] = 0x1202;
}
maps[1].half_tile = true;
font = 0x1010;
gsa_write_text(1, 7, 3, "Game Skunk Advance!!! <3");
gsa_run_loop(tick_fade_in);
}
void tick() {
maps[0].scrollx -= input.x_dir;
maps[0].scrolly -= input.y_dir;
}
bool tick_fade_in() {
static f32 t = 0;
fade_palette(t / 60.f);
++t;
return 60.f >= t;
}