diff --git a/src/cells.c b/src/cells.c index 551b6ef..f79b29a 100644 --- a/src/cells.c +++ b/src/cells.c @@ -61,7 +61,7 @@ void drawGrid(int grid[CELL_AMOUNT][CELL_AMOUNT]) void putCell(int grid[CELL_AMOUNT][CELL_AMOUNT], int posX, int posY, CellType brush, int brushSize) { - if (grid[posX][posY] == VOID) + if (grid[posX][posY] == VOID || grid[posX][posY] == brush) { for (int i=0; i 1) { brushSize--; + brushSizeOpacity = 255; } if (IsKeyPressed(KEY_C)) { clearGrid(grid); @@ -106,6 +110,11 @@ int main () case GAME: updateGrid(grid); drawGrid(grid); + Vector2 mousePos = GetMousePosition(); + DrawText(enumToString(brush), mousePos.x+15, mousePos.y+15, DEFAULT_FONT_SIZE, (Color){255, 255, 255, brushTextOpacity}); + DrawText(intToString(blankStr, brushSize), mousePos.x-15, mousePos.y-15, DEFAULT_FONT_SIZE, (Color){255, 255, 255, brushSizeOpacity}); + if (brushTextOpacity-4 > 0) brushTextOpacity-= 4; + if (brushSizeOpacity-4 > 0) brushSizeOpacity-= 4; break; default: break; diff --git a/src/utils.c b/src/utils.c index 3243ba0..012d38a 100644 --- a/src/utils.c +++ b/src/utils.c @@ -29,6 +29,8 @@ #include "raylib.h" #include "cells.h" +#include +#include "utils.h" void initEnv(void) { @@ -39,12 +41,27 @@ void initEnv(void) void drawTitleScreen(void) { - int titleWidth = MeasureText("SANDBOX", 40); + int titleWidth = MeasureText("Sandbox", 80); DrawRectangle(0, 0, WINDOW_SIZE_PIXELS, WINDOW_SIZE_PIXELS, DARKBLUE); - DrawText("SANDBOX", (WINDOW_SIZE_PIXELS-titleWidth)/2, 20, 40, WHITE); - int controlsWidth = MeasureText("Controls", 30); - DrawText("Controls", (WINDOW_SIZE_PIXELS-controlsWidth)/2, 100, 30, WHITE); - DrawText("Left click to spawn sand", 25, 150, 30, WHITE); + DrawText("Sandbox", (WINDOW_SIZE_PIXELS-titleWidth)/2, (WINDOW_SIZE_PIXELS/2)-80, 80, WHITE); int startGameWidth = MeasureText("Press Space to start!", 30); DrawText("Press Space to start!", (WINDOW_SIZE_PIXELS-startGameWidth)/2, 400, 30, WHITE); +} + +char* enumToString(CellType brush) +{ + switch(brush) + { + case VOID: return "Void"; + case SAND: return "Sand"; + case STONE: return "Stone"; + case WATER: return "Water"; + default: return "Unknown"; + } +} + +char* intToString(char* str, int n) +{ + sprintf(str, "%d", n); + return str; } \ No newline at end of file diff --git a/src/utils.h b/src/utils.h index 0d99f5f..bbe3570 100644 --- a/src/utils.h +++ b/src/utils.h @@ -32,5 +32,9 @@ void initEnv(void); void drawTitleScreen(void); +char* enumToString(CellType brush); +char* intToString(char* str, int n); + +#define ENOUGH 10 #endif // UTILS_H \ No newline at end of file