From a14525e02746e067e0e6976816451e6ab4dae3c2 Mon Sep 17 00:00:00 2001 From: fredrikr79 Date: Sun, 6 Apr 2025 02:27:40 +0200 Subject: [PATCH] fix movement animation --- src/main.c | 21 +++++++++------------ src/utils/vector.c | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/main.c b/src/main.c index c452db6..6634628 100644 --- a/src/main.c +++ b/src/main.c @@ -15,7 +15,7 @@ static SDL_Renderer *renderer = NULL; #define GRID_PADDING 4 #define GRID_WIDTH 18 #define GRID_HEIGHT 15 -#define TILE_WIDTH 24 +#define TILE_WIDTH 28 #define TILE_HEIGHT 24 enum GRID_TILES { EMPTY, SNAKE, FRUIT }; @@ -122,24 +122,21 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { } void game_step(State *stateptr) { - // SDL_Log("snek: %d %d %d %d", player->direction, player->length, player->head_index, - // player->tail_index); - Snake player = stateptr->player; + vector_print(stateptr->player.body); int head = vector_pop(&stateptr->player.body); - vector_push(&stateptr->player.body, head); - switch (player.direction) { + switch (stateptr->player.direction) { case RIGHT: - vector_push(&player.body, head + 1); + vector_push(&stateptr->player.body, head + 1); break; case UP: - vector_push(&player.body, head - GRID_WIDTH); + vector_push(&stateptr->player.body, head - GRID_WIDTH); break; case LEFT: - vector_push(&player.body, head - 1); + vector_push(&stateptr->player.body, head - 1); break; case DOWN: - vector_push(&player.body, head + GRID_WIDTH); + vector_push(&stateptr->player.body, head + GRID_WIDTH); break; } } @@ -178,8 +175,8 @@ SDL_AppResult SDL_AppIterate(void *appstate) { SDL_SetRenderDrawColor(renderer, COLOR_SNAKE); for (int i = 0; i < player.length; i++) { int b = player.body.data[i]; - rect.x = startx + ROW_AT(b) * (rect.w + GRID_PADDING); - rect.y = starty + COL_AT(b) * (rect.h + GRID_PADDING); + rect.x = startx + COL_AT(b) * (rect.w + GRID_PADDING); + rect.y = starty + ROW_AT(b) * (rect.h + GRID_PADDING); SDL_RenderFillRect(renderer, &rect); } diff --git a/src/utils/vector.c b/src/utils/vector.c index 9d6abd8..8af25f8 100644 --- a/src/utils/vector.c +++ b/src/utils/vector.c @@ -38,7 +38,7 @@ void vector_pusha(Vector *v, int *vals, int n) { int vector_pop(Vector *v) { if (v->size < 1) { - printf("vector_pop: popping empty vector"); + printf("vector_pop: popping empty vector\n"); return 0; } int val = v->data[v->size - 1];