summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authororangerot <orangerot@orangerot.dev>2025-10-14 15:09:34 +0200
committerorangerot <orangerot@orangerot.dev>2025-10-14 15:09:34 +0200
commitd5a89c35f1e2e481a01b151616d5ad9e33da20de (patch)
treefba5af586d7b071ebcd575d309b7e572187f1e6b
parenteb1d51733209b08d711c98ce69eb92c4ee583640 (diff)
fix: domino draw margin
-rw-r--r--game.c9
-rw-r--r--src_build/domino_assets.c14
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),