From 37956daf7f35b281520913ec1ccb41ccd3875276 Mon Sep 17 00:00:00 2001 From: CalisJI Date: Tue, 13 Aug 2024 22:17:22 +0700 Subject: [PATCH] complete the logic for Game --- .gitignore | 2 + src/main.cpp | 179 +++++++++++---------------------------------------- 2 files changed, 40 insertions(+), 141 deletions(-) diff --git a/.gitignore b/.gitignore index 89cc49c..10e4c6f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ .vscode/c_cpp_properties.json .vscode/launch.json .vscode/ipch + +.fake \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 951d0d7..5807308 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #pragma region Matrix Config #define R1_PIN 25 #define G1_PIN 26 @@ -21,7 +22,7 @@ // Configure for your panel(s) as appropriate! #define PANEL_WIDTH 64 #define PANEL_HEIGHT 64 -#define PANELS_NUMBER 4 +#define PANELS_NUMBER 2 #define PANE_WIDTH PANEL_WIDTH *PANELS_NUMBER #define PANE_HEIGHT PANEL_HEIGHT @@ -51,126 +52,6 @@ static int y_moi = 0; int num_moi = 0; bool reached = false; bool gen_moi = false; -const char *htmlPage = R"=====( - - - - - - Led Strip Controller - - - -
-
- -
-
- - -
-
- - -
-
- - -
-
- - - - - - -
-
- - - - -)====="; uint16_t rgbToUint16(uint8_t r, uint8_t g, uint8_t b, bool mode) { @@ -253,16 +134,17 @@ void drawRandomPoint(int x_ref, int y_ref, int min_distance, bool generated) int MinX_bar = 0; int MaxX_bar = 5; int MinY_bar = 50; -void Drawbar(int x){ +void Drawbar(int x) +{ // measure x dimension int dodai = 5; MinX_bar = x - 1 - ((dodai * 3) / 3); MaxX_bar = x + 1 + ((dodai * 3) / 3); - + for (int i = MinX_bar; i <= MaxX_bar; i++) { - for (int j = MinY_bar; j <= MinY_bar+1; j++) + for (int j = MinY_bar; j <= MinY_bar + 1; j++) { if (j <= 32) dma_display->drawPixelRGB888(i, j, 214, 24, 192); @@ -275,18 +157,21 @@ void Drawbar(int x){ bool created = false; int X_vat = 20; int Y_vat = 2; -void DrawObject(bool deleted = false){ +void DrawObject(bool deleted = false) +{ // measure x dimension int dodai = 5; - - if(!created){ + if (!created) + { X_vat = random(20, 109); // random(min, max), max không bao gồm Y_vat = 2; created = true; } - else{ + else + { Y_vat += 1; - if(Y_vat>52) created = false; + if (Y_vat > 52) + created = false; } int min_x = X_vat - 1; int max_x = X_vat + 1; @@ -308,24 +193,30 @@ void DrawObject(bool deleted = false){ else { for (int i = min_x; i <= max_x; i++) - { - for (int j = min_y; j <= max_y; j++) { - dma_display->drawPixelRGB888(i, j, 0, 0, 0); + for (int j = min_y; j <= max_y; j++) + { + dma_display->drawPixelRGB888(i, j, 0, 0, 0); + } } } - } } int score = 0; +#define COLOR_BLACK dma_display->color333(0, 0, 0) +#define COLOR_WHITE dma_display->color333(7, 7, 7) void HeldObject() { - if(Y_vat>=MinY_bar&&X_vat-1>=MinX_bar&&X_vat+1<=MaxX_bar) + if (Y_vat >= MinY_bar && X_vat - 1 >= MinX_bar && X_vat + 1 <= MaxX_bar) { created = false; DrawObject(true); DrawObject(); - score +=1; + score += 1; + dma_display->setFont(&FreeSans9pt7b); // Change to the desired font size + dma_display->setTextColor(COLOR_WHITE); + dma_display->setCursor(4, 4); + dma_display->printf("Score: %d", score); } } int *drawStickMan(int x, int y) @@ -357,11 +248,10 @@ void setup() dma_display->begin(); // setup the LED matrix dma_display->setBrightness8(50); // 0-255 dma_display->clearScreen(); - // SerialBT.begin("ESP32Test"); - // setup_routing(); } bool mode = false; +unsigned long period_time = millis(); void loop() { // server.handleClient(); @@ -401,8 +291,17 @@ void loop() memcpy(&value, &buffer[index], floatSize); data[row][col] = value; } - } + + Drawbar(int(data[0][0])); + unsigned long now = millis(); + if (now - period_time >= 600) + { + DrawObject(); + HeldObject(); + period_time = now; + } + // Reset chỉ số chỉ mục sau khi xử lý bufferIndex = 0; } @@ -412,8 +311,6 @@ void loop() // readDataFromSerial(); } - - // int x = int(data[row][0]); // int y = int(data[row][1]); // int x_in = int(data[0][0]); @@ -451,7 +348,7 @@ void loop() // if (gen_moi == false && y<255) // { // 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)