crocparty/game/game.c

65 lines
1.2 KiB
C
Raw Normal View History

2024-02-27 23:57:37 +00:00
#include "art/game_player.h"
2024-02-27 23:09:51 +00:00
#include "art/game_tiles.h"
2024-02-26 00:40:33 +00:00
#include "device/device.h"
2024-02-27 04:19:22 +00:00
#include "map/game_map.h"
2024-02-25 03:00:23 +00:00
#include "game.h"
#include "sys/sys.h"
2024-02-28 03:57:37 +00:00
#include <stdio.h>
2024-02-25 03:00:23 +00:00
uint32_t game_frame;
2024-02-28 03:57:37 +00:00
game_bbox game_player_bbox = {
.x=0x9000,
// .y=0x5800,
.y=0x0000,
.w=0x1000,
.h=0x1000,
};
sys_i32 game_player_dx = 0;
sys_i32 game_player_dy = 0;
const char* game_title() {
return "Croc Party!";
}
2024-02-25 03:00:23 +00:00
void game_init() {
sys_init();
2024-02-27 23:57:37 +00:00
game_palette_init();
}
void game_destroy() {
sys_destroy();
2024-02-25 03:00:23 +00:00
}
void game_update() {
2024-02-27 23:57:37 +00:00
game_frame += 1;
2024-02-28 03:57:37 +00:00
game_player_dy += 1;
if (device_buttons[0]) { game_player_dx -= 16; }
if (device_buttons[1]) { game_player_dx += 16; }
game_collision collision = game_collision_move_to_contact(
&game_player_bbox,
game_player_dx,
game_player_dy
);
if (collision.collided_x) { game_player_dx = 0; }
if (collision.collided_y) { game_player_dy = 0; }
2024-02-25 03:00:23 +00:00
}
void game_draw() {
2024-02-27 23:57:37 +00:00
sys_cls(9);
sys_map_draw(map_game_map, spr_game_tiles, 0, 0, 0, 0, 32, 18);
sys_sprite_draw_ext(
spr_game_player,
2024-02-28 03:57:37 +00:00
(game_frame / 8) % 4 * 2,
game_player_bbox.x / 0x100,
game_player_bbox.y / 0x100,
2, 2,
2024-02-27 23:57:37 +00:00
false, false
);
2024-02-25 03:00:23 +00:00
}