diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/level.c | 30 | ||||
| -rw-r--r-- | src/level.h | 13 | ||||
| -rw-r--r-- | src/main.c | 10 |
3 files changed, 31 insertions, 22 deletions
diff --git a/src/level.c b/src/level.c index c805c04..cda6594 100644 --- a/src/level.c +++ b/src/level.c @@ -1,5 +1,6 @@ #include "level.h" +#include <stdio.h> #include <stdlib.h> #include "raylib.h" @@ -7,17 +8,8 @@ Level *SE_CreateLevel(int width, int height) { Level *level = malloc(sizeof(Level) + sizeof(Vector3) * width * height); - int i = 0; - - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - Vector3 *v = malloc(sizeof(Vector3)); - v->x = x * 10; - v->y = y * 10; - v->z = 0; - level->vectors[i] = v; - i++; - } + for (int i = 0; i < width * height; i++) { + level->sides[i] = NULL; } level->width = width; @@ -26,19 +18,21 @@ Level *SE_CreateLevel(int width, int height) { return level; } -void SE_RenderLevel(Level *level) { - int cell_size = 10; - +void SE_RenderLevel(Level *level, int zoomScale) { for (int i = 0; i < level->width * level->height; i++) { - Vector3 *vector = level->vectors[i]; - DrawRectangle(vector->x, vector->y, 2, 2, BLACK); + Side *side = level->sides[i]; + if (side == NULL) continue; + + DrawLine(side->a.x * zoomScale, side->a.y * zoomScale, + side->b.x * zoomScale, side->b.y * zoomScale, RED); } } void SE_FreeLevel(Level *level) { for (int i = 0; i < level->width * level->height; i++) { - Vector3 *v = level->vectors[i]; - free(v); + Side *side = level->sides[i]; + if (side == NULL) continue; + free(side); } free(level); } diff --git a/src/level.h b/src/level.h index fe8f62f..fe6ce1d 100644 --- a/src/level.h +++ b/src/level.h @@ -1,9 +1,16 @@ -#include "raylib.h" +typedef struct { + int x, y; +} Point; + +typedef struct { + Point a, b; +} Side; + typedef struct { int width, height; - Vector3 *vectors[]; + Side *sides[]; } Level; Level *SE_CreateLevel(int width, int height); -void SE_RenderLevel(Level *level); +void SE_RenderLevel(Level *level, int zoomScale); void SE_FreeLevel(Level *level); @@ -1,3 +1,5 @@ +#include <stdlib.h> + #include "level.h" #include "raylib.h" @@ -10,13 +12,19 @@ int main() { Level *level = SE_CreateLevel(30, 30); + // creating a dummy side + Side *side = malloc(sizeof(Side)); + side->a = (Point){1, 1}; + side->b = (Point){3, 4}; + level->sides[0] = side; + while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); DrawText("hi world!", GetScreenWidth() / 2 - 16 * 4, GetScreenHeight() / 2 - 16, 32, BLACK); - SE_RenderLevel(level); + SE_RenderLevel(level, gridSize); // Drawing grid for (int x = 0; x <= level->width; x++) { |
