Support for colliders

This commit is contained in:
2023-11-08 16:41:00 +01:00
parent e56c2a067e
commit 50241f9c26
10 changed files with 255 additions and 27 deletions

View File

@@ -47,6 +47,10 @@ void deinit(Game *game) {
bzTilesetDestroy(&game->buildingsTileset);
bzTileMapDestroy(&game->map);
}
int sizeX = 1;
int sizeY = 1;
void render(float dt, Game *game) {
Camera2D *camera = &game->camera;
if (IsKeyDown(KEY_W)) camera->target.y -= 20;
@@ -64,15 +68,34 @@ void render(float dt, Game *game) {
bzTileMapDraw(&game->map);
Vector2 worldPos = GetScreenToWorld2D(GetMousePosition(), game->camera);
int tileX = (int) worldPos.x / 16;
int tileY = (int) worldPos.y / 16;
if (tileX != 0 && tileY != 0) {
bool canPlace = bzTileMapCanPlace(&game->map, tileX, tileY, sizeX, sizeY);
Color placeColor = canPlace ?
(Color) {0, 255, 0, 200} :
(Color) {255, 0, 0, 200};
DrawRectangleLines(tileX * 16, tileY * 16, sizeX * 16, sizeY * 16, placeColor);
}
EndMode2D();
if (nk_begin(NK, "Show", nk_rect(50, 50, 220, 220),
NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_CLOSABLE)) {
// fixed widget pixel width
nk_layout_row_static(NK, 30, 80, 1);
if (nk_button_label(NK, "button")) {
// event handling
}
nk_labelf(NK, NK_TEXT_LEFT, "tileX: %d", tileX);
nk_labelf(NK, NK_TEXT_LEFT, "tileY: %d", tileY);
nk_labelf(NK, NK_TEXT_LEFT, "x: %d", sizeX);
nk_labelf(NK, NK_TEXT_LEFT, "y: %d", sizeY);
nk_slider_int(NK, 0, &sizeX, 10, 1);
nk_slider_int(NK, 0, &sizeY, 10, 1);
}
nk_end(NK);
}