From d5a89c35f1e2e481a01b151616d5ad9e33da20de Mon Sep 17 00:00:00 2001 From: orangerot Date: Tue, 14 Oct 2025 15:09:34 +0200 Subject: [PATCH] fix: domino draw margin --- game.c | 9 +++++---- src_build/domino_assets.c | 14 ++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/game.c b/game.c index 14a8e67..56f2a4a 100644 --- a/game.c +++ b/game.c @@ -32,13 +32,14 @@ void cursor_position_callback(int xpos, int ypos) { } void mouse_button_callback(int button, int action, int mods) { - printf("click!\n"); if (button == GLFW_MOUSE_BUTTON_LEFT && action == GLFW_PRESS) { - if (++eyes_back >= NUM_DOMINO_X) { + printf("click!\n"); + if (++eyes_back >= NUM_DOMINO_X - 1) { eyes_back = 0; eyes_front = (eyes_front+1)%NUM_DOMINO_Y; } + printf("%d %d\n", eyes_front, eyes_back); } } @@ -67,8 +68,8 @@ void draw_image(decoded_image img) { for (int y = 0; y < DOMINO_HEIGHT; y++) { for (int x = 0; x < DOMINO_WIDTH; x++) { - img.buf[(b->front.y * 10 + y) * img.width + b->front.x * 10 + x] = - (*(uint32_t*) &domino[b->front.val][b->back.val][y * DOMINO_WIDTH * BYTES_PER_PIXEL + x * BYTES_PER_PIXEL]); + img.buf[(b->front.y * EYE_SIZE + y) * img.width + b->front.x * EYE_SIZE + x] = + (*(uint32_t*) &domino[b->back.val][b->front.val][y * DOMINO_WIDTH * BYTES_PER_PIXEL + x * BYTES_PER_PIXEL]); } } } diff --git a/src_build/domino_assets.c b/src_build/domino_assets.c index b251506..e9d9160 100644 --- a/src_build/domino_assets.c +++ b/src_build/domino_assets.c @@ -2,14 +2,15 @@ #define STB_IMAGE_IMPLEMENTATION #include "stb_image.h" -#define NUM_DOMINO_X 7 +#define NUM_DOMINO_X 6 #define NUM_DOMINO_Y 6 #define DOMINO_WIDTH 23 #define DOMINO_HEIGHT 12 -#define START_X 2 -#define START_Y 2 +#define EYE_SIZE 12 #define MARGIN_X 9 #define MARGIN_Y 4 +#define START_X 1 + 2*(DOMINO_WIDTH + MARGIN_X) +#define START_Y 2 void print_domino(unsigned char *data, int width, int n, int posx, int posy) { printf(" {"); @@ -34,17 +35,18 @@ int main(int argc, char **argv) { printf("#define NUM_DOMINO_Y %d\n", NUM_DOMINO_Y ); printf("#define DOMINO_WIDTH %d\n", DOMINO_WIDTH ); printf("#define DOMINO_HEIGHT %d\n", DOMINO_HEIGHT); + printf("#define EYE_SIZE %d\n", EYE_SIZE); printf("#define BYTES_PER_PIXEL %d\n", n); printf("unsigned char domino[%d][%d][%d] = {\n", - NUM_DOMINO_Y, NUM_DOMINO_X, + NUM_DOMINO_Y, DOMINO_WIDTH * DOMINO_HEIGHT * n ); - for (int domino_y = 0; domino_y < NUM_DOMINO_Y; domino_y++) { + for (int domino_x = 0; domino_x < NUM_DOMINO_X; domino_x++) { printf(" {\n"); - for (int domino_x = 0; domino_x < NUM_DOMINO_X; domino_x++) { + for (int domino_y = 0; domino_y < NUM_DOMINO_Y; domino_y++) { print_domino( data, x, n, START_X + domino_x * (DOMINO_WIDTH + MARGIN_X),