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"
|
2024-02-26 02:38:53 +00:00
|
|
|
#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;
|
|
|
|
|
2024-02-26 02:38:53 +00:00
|
|
|
const char* game_title() {
|
|
|
|
return "Croc Party!";
|
|
|
|
}
|
|
|
|
|
2024-02-25 03:00:23 +00:00
|
|
|
void game_init() {
|
2024-02-26 02:38:53 +00:00
|
|
|
sys_init();
|
|
|
|
|
2024-02-27 23:57:37 +00:00
|
|
|
game_palette_init();
|
2024-02-26 02:38:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
2024-02-27 01:31:58 +00:00
|
|
|
|
2024-02-28 00:00:57 +00:00
|
|
|
sys_map_draw(map_game_map, spr_game_tiles, 0, 0, 0, 0, 32, 18);
|
2024-02-27 01:31:58 +00:00
|
|
|
sys_sprite_draw_ext(
|
2024-02-28 00:00:57 +00:00
|
|
|
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-27 01:31:58 +00:00
|
|
|
);
|
2024-02-25 03:00:23 +00:00
|
|
|
}
|