From 2a03485ce463d22c8f5101916dfdfa33f972a13f Mon Sep 17 00:00:00 2001 From: CalisJI Date: Tue, 13 Aug 2024 15:50:06 +0700 Subject: [PATCH] select_mode --- src/main.cpp | 113 ++++++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 51 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index a6be575..dd66edd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ #include #include #include -// #include -// #include +#include +#include #pragma region Matrix Config #define R1_PIN 25 #define G1_PIN 26 @@ -323,7 +323,7 @@ void printData() Serial.println(); Serial.println("Data printing completed."); } - +bool mode = false; void loop() { //server.handleClient(); @@ -365,61 +365,72 @@ void loop() } int x = int(data[row][0]); int y = int(data[row][1]); + int x_in = int(data[0][0]); + int y_in = int(data[0][1]); - // measure x dimension + if(x_in==0&&y_in==0){ + mode = true; + } + else if (x_in==255&&y_in==255) + { + mode =false; + } + if(mode){ + int *_range; + _range = drawStickMan(x, y); + } + else{ + // measure x dimension int min_x = x - 1 - ((num_moi * 3) / 3); int max_x = x + 1 + ((num_moi * 3) / 3); int min_y = y - 1; int max_y = y + 1; + for (int i = min_x; i <= max_x; i++) + { + for (int j = y - 1; j <= y + 1; j++) + { - int *_range; - _range = drawStickMan(x, y); + if (j <= 32) + dma_display->drawPixelRGB888(i, j, 214, 24, 192); + else + dma_display->drawPixelRGB888(i, j, 214, 192, 24); + // reach moi + if (gen_moi == false) + { + drawRandomPoint(x, y, 5 + (num_moi * 3), false); + gen_moi = true; + } + if (min_x <= x_moi + 1 && max_x > x_moi - 1 && min_y <= y_moi + 1 && max_y >= y_moi - 1) + { + reached = true; + num_moi += 1; + gen_moi = false; + } + } + } + if (reached) + { + min_x = x - 1 - ((num_moi * 3) / 3); + max_x = x + 1 + ((num_moi * 3) / 3); + for (int i = min_x; i <= max_x; i++) + { + for (int j = y - 1; j <= y + 1; j++) + { + if (j <= 32) + dma_display->drawPixelRGB888(i, j, 214, 24, 192); + else + dma_display->drawPixelRGB888(i, j, 214, 192, 24); + } + } + reached = false; + } + + if (gen_moi) + { + drawRandomPoint(x, y, 5 + (num_moi * 3), gen_moi); + } + } - - // for (int i = min_x; i <= max_x; i++) - // { - // for (int j = y - 1; j <= y + 1; j++) - // { - - // if (j <= 32) - // dma_display->drawPixelRGB888(i, j, 214, 24, 192); - // else - // dma_display->drawPixelRGB888(i, j, 214, 192, 24); - // // reach moi - // if (gen_moi == false) - // { - // drawRandomPoint(x, y, 5 + (num_moi * 3), false); - // gen_moi = true; - // } - // if (min_x <= x_moi + 1 && max_x > x_moi - 1 && min_y <= y_moi + 1 && max_y >= y_moi - 1) - // { - // reached = true; - // num_moi += 1; - // gen_moi = false; - // } - // } - // } - // if (reached) - // { - // min_x = x - 1 - ((num_moi * 3) / 3); - // max_x = x + 1 + ((num_moi * 3) / 3); - // for (int i = min_x; i <= max_x; i++) - // { - // for (int j = y - 1; j <= y + 1; j++) - // { - // if (j <= 32) - // dma_display->drawPixelRGB888(i, j, 214, 24, 192); - // else - // dma_display->drawPixelRGB888(i, j, 214, 192, 24); - // } - // } - // reached = false; - // } - - // if (gen_moi) - // { - // drawRandomPoint(x, y, 5 + (num_moi * 3), gen_moi); - // } } // Reset chỉ số chỉ mục sau khi xử lý bufferIndex = 0;