From b9e9c0423561377c84410e6dd63a3b370df482ef Mon Sep 17 00:00:00 2001 From: Alan Youngblood Date: Sun, 7 Nov 2021 20:47:58 -0500 Subject: [PATCH] UI tweaks for more layers and debug --- build/BeagleRescue | Bin 333456 -> 337696 bytes src/config/config.json | 2 +- src/ecs/KeyboardController.h | 4 ++ src/game/Game.cpp | 99 ++++++++++++++++++----------------- src/game/Game.hpp | 4 +- src/ui/UINineSlice.cpp | 32 +++++------ src/ui/UINineSlice.h | 5 +- src/ui/UIText.cpp | 8 +-- src/ui/UIText.h | 5 +- 9 files changed, 84 insertions(+), 75 deletions(-) diff --git a/build/BeagleRescue b/build/BeagleRescue index f8c57f3f37a81e58379cbab1341641818146a6a4..50a8bf7bacee041a55a8c1e956de102cd720ea2d 100755 GIT binary patch delta 96337 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 A5C8xG delta 91596 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, 12, 22, globalScale, "text"); + text->ParseString(myText, 12, 22, globalScale, "text",Game::groupUI_Layer1); SDL_Rect myDestRect = SDL_Rect(); myDestRect.x = 12; myDestRect.y = 8; myDestRect.w = 160; myDestRect.h = 40; my9Slice = new UINineSlice("textBox"); - my9Slice->MakeSlices("textBox",32,32,14,16,14,16,myDestRect,globalScale); + my9Slice->MakeSlices("textBox",32,32,14,16,14,16,myDestRect,globalScale,Game::groupUI_Layer0); + + // debug UI text + UIText* debugStaticText2; + UIText* debugStaticText3; + UIText* debugStaticText4; + UIText* debugStaticText5; + UIText* debugStaticText6; + UIText* debugStaticText7; + std::string debugStaticString = "Collision"; + debugStaticText = new UIText(debugStaticString, "font", 0,0,8,12,1); + debugStaticText->ParseString(debugStaticString,220*globalScale,14*gScale,1,"debug",Game::groupUI_Layer3); + std::string debugStaticString2 = "Hori:"; + debugStaticText2 = new UIText(debugStaticString2, "font", 0,0,8,12,1); + debugStaticText2->ParseString(debugStaticString2,220*globalScale,24*gScale,1,"debug",Game::groupUI_Layer3); + std::string debugStaticString3 = "Vert:"; + debugStaticText3 = new UIText(debugStaticString3, "font", 0,0,8,12,1); + debugStaticText3->ParseString(debugStaticString3,220*globalScale,34*gScale,1,"debug",Game::groupUI_Layer3); + std::string debugStaticString4 = "Jump:"; + debugStaticText4 = new UIText(debugStaticString4, "font", 0,0,8,12,1); + debugStaticText4->ParseString(debugStaticString4,220*globalScale,44*gScale,1,"debug",Game::groupUI_Layer3); + std::string debugStaticString5 = "P.y :"; + debugStaticText5 = new UIText(debugStaticString5, "font", 0,0,8,12,1); + debugStaticText5->ParseString(debugStaticString5,220*globalScale,54*gScale,1,"debug",Game::groupUI_Layer3); + std::string debugStaticString6 = "P.dy:"; + debugStaticText6 = new UIText(debugStaticString6, "font", 0,0,8,12,1); + debugStaticText6->ParseString(debugStaticString6,220*globalScale,64*gScale,1,"debug",Game::groupUI_Layer3); + std::string debugStaticString7 = "YVec:"; + debugStaticText7 = new UIText(debugStaticString7, "font", 0,0,8,12,1); + debugStaticText7->ParseString(debugStaticString7,220*globalScale,74*gScale,1,"debug",Game::groupUI_Layer3); // debug UI box - std::string debugStaticString = "Debug info"; - debugStaticText = new UIText(debugStaticString, "font", 0,0,8,12,1); - text->ParseString(debugStaticString,240*globalScale,44,1,"debug"); SDL_Rect debugBoxRect = SDL_Rect(); - debugBoxRect.x = 240*globalScale; + debugBoxRect.x = 220*globalScale; debugBoxRect.y = 8*globalScale; - debugBoxRect.w = 80*globalScale; - debugBoxRect.h = 80*globalScale; + debugBoxRect.w = 98*globalScale; + debugBoxRect.h = 94*globalScale; debugBox = new UINineSlice("textBox"); - debugBox->MakeSlices("textBox",32,32,14,16,14,16,debugBoxRect,1); + debugBox->MakeSlices("textBox",32,32,14,16,14,16,debugBoxRect,1,Game::groupUI_Layer2); //ecs implementation @@ -168,16 +194,6 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g puppy.addComponent("puppy", SpriteComponent::spriteObject); puppy.addGroup(groupObjects); -// const char* strA = "r"; -// const char* strB = "r"; -// -// if (strcmp(strA,strB)==0) -// { -// printf("strcomp evaluated to true"); -// } else { -// printf("strcomp false or not evaluated"); -// } - // enemy.addComponent(180*globalScale,180*globalScale,32,32,globalScale); // enemy.addComponent("robber", SpriteComponent::spriteAnimation, "assets/textures/actors/robberrodent.json"); // enemy.addGroup(groupEnemies); @@ -190,6 +206,7 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g //camera.x = camera.x*globalScale; +// ====== Setup groups auto& tiles(manager.getGroup(Game::groupMap)); auto& players(manager.getGroup(Game::groupPlayers)); auto& colliders(manager.getGroup(Game::groupColliders)); @@ -198,7 +215,8 @@ auto& objects(manager.getGroup(Game::groupObjects)); // auto& projectiles(manager.getGroup(Game::groupProjectiles)); auto& gui(manager.getGroup(Game::groupUI_Layer0)); auto& uiText(manager.getGroup(Game::groupUI_Layer1)); - +auto& debugBG(manager.getGroup(Game::groupUI_Layer2)); +auto& debugText(manager.getGroup(Game::groupUI_Layer3)); void Game::handleEvents() { @@ -250,25 +268,7 @@ void Game::update() if(Collision::AABB(cCol, playerCol)) { // printDebug("Collision Detected"); -// printf("Collision Stats:\nPlayer Center\nx: %d\ny: %d\nObjectCollider Center\nx: %d\ny: %d\n",(playerCol.x+playerCol.w/2)/gScale,(playerCol.y+playerCol.h/2)/gScale,(cCol.x+cCol.w/2)/gScale,(cCol.y+cCol.h/2)/gScale); -// printDebug(""); - if(!playerIsGrounded){ -/* player.getComponent().position.y = cCol.y-playerCol.h*gScale; - printDebug("cCol x,y,w,h"); - printDebug(std::to_string(cCol.x)); - printDebug(std::to_string(cCol.y)); - printDebug(std::to_string(cCol.w)); - printDebug(std::to_string(cCol.h)); - printDebug("playerCol x,y,w,h"); - printDebug(std::to_string(playerCol.x)); - printDebug(std::to_string(playerCol.y)); - printDebug(std::to_string(playerCol.w)); - printDebug(std::to_string(playerCol.h));*/ -/* printDebug("playerTransform x,y,w,h"); - printDebug(std::to_string(player.getComponent().position.x)); - printDebug(std::to_string(player.getComponent().position.y)); - printDebug(std::to_string(player.getComponent().width)); - printDebug(std::to_string(player.getComponent().height)); */ + if(!playerIsGrounded){ player.getComponent().Play("Idle"); } playerIsGrounded = true; @@ -365,17 +365,18 @@ void Game::render() letter->draw(); } } + if (debugMenu) + { + for (auto& guiElement : debugBG) + { + guiElement->draw(); + } + for (auto& letter : debugText) + { + letter->draw(); + } + } -// SDL_Rect myBox; -// myBox = SDL_Rect(); -// myBox.w = 32*gScale; -// myBox.h = 32*gScale; -// myBox.x = 0*gScale; -// myBox.y = 0*gScale; -// -// SDL_SetRenderDrawColor(renderer, 255,0,255,134); -// SDL_RenderDrawRect(renderer, &myBox); - SDL_RenderPresent(renderer); } diff --git a/src/game/Game.hpp b/src/game/Game.hpp index 1c6372a..c49b69b 100644 --- a/src/game/Game.hpp +++ b/src/game/Game.hpp @@ -55,7 +55,9 @@ public: groupObjects, groupBackground, groupUI_Layer0, - groupUI_Layer1 + groupUI_Layer1, + groupUI_Layer2, + groupUI_Layer3 }; private: int counter = 0; diff --git a/src/ui/UINineSlice.cpp b/src/ui/UINineSlice.cpp index b754dc2..2999661 100644 --- a/src/ui/UINineSlice.cpp +++ b/src/ui/UINineSlice.cpp @@ -25,7 +25,7 @@ UINineSlice::~UINineSlice() } -void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, int x1, int y0, int y1, SDL_Rect finalRect,int scale) +void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, int x1, int y0, int y1, SDL_Rect finalRect,int scale, Game::groupLabels group) { // Note about the variables: The source texture is what everything is drawn from, with srcW and srcH defining the size of that texture and x0 x1 being the vertical slices position across the x axis, and the y0, y1 being the horizontal slices. This is also in the project readme with an ASCII art diagram. finalRect refers to the Rectangle that describes the area of the screen in which we want the 9-sliced source to appear in it's final in-game rendering. @@ -158,7 +158,7 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in destRect.x = finalRect.x+(finalRect.w-srcRect.w*scale); destRect.y = finalRect.y+(finalRect.h-srcRect.h*scale); } - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } // Slices 1,7 need to be repeated in a row if (i==1||i==7) @@ -169,14 +169,14 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in { destRect.x = finalRect.x+(x0*scale+c*(x1*scale-x0*scale)); destRect.y = finalRect.y; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } if (colsRemainder>0){ destRect.x = finalRect.x+(x0*scale+cols*(x1*scale-x0*scale)); destRect.y = finalRect.y; srcRect.w = colsRemainder; destRect.w = colsRemainder; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } if (i==7) @@ -185,14 +185,14 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in { destRect.x = finalRect.x+(x0*scale+c*(x1*scale-x0*scale)); destRect.y = finalRect.y+(finalRect.h-(srcH-y1)*scale); - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } if (colsRemainder>0){ destRect.x = finalRect.x+(x0*scale+cols*(x1*scale-x0*scale)); destRect.y = finalRect.y+(finalRect.h-(srcH-y1)*scale); srcRect.w = colsRemainder; destRect.w = colsRemainder; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } } @@ -205,14 +205,14 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in { destRect.x = finalRect.x; destRect.y = finalRect.y+(y0*scale+r*(y1-y0)*scale); - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } if (rowsRemainder>0){ destRect.x = finalRect.x; destRect.y = finalRect.y+(y0*scale+rows*(y1-y0)*scale); srcRect.h = rowsRemainder; destRect.h = rowsRemainder; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } if (i==5) @@ -221,14 +221,14 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in { destRect.x = finalRect.x+(finalRect.w-(srcW-x1)*scale); destRect.y = finalRect.y+(y0*scale+r*(y1-y0)*scale); - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } if (rowsRemainder>0){ destRect.x = finalRect.x+(finalRect.w-(srcW-x1)*scale); destRect.y = finalRect.y+(y0*scale+rows*(y1-y0)*scale); srcRect.h = rowsRemainder; destRect.h = rowsRemainder; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } } @@ -243,7 +243,7 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in { destRect.x = finalRect.x+(x0*scale+c*(x1-x0)*scale); destRect.y = finalRect.y+(y0*scale+rowY*scale); - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } if (colsRemainder>0) { @@ -251,7 +251,7 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in destRect.y = finalRect.y+(y0*scale+rowY*scale); srcRect.w = colsRemainder; destRect.w = colsRemainder; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } if (rowsRemainder>0) @@ -264,7 +264,7 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in destRect.h = rowsRemainder; srcRect.w = (srcW-x0-(srcW-x1)); destRect.w = (srcW-x0-(srcW-x1)); - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } if(rowsRemainder>0&&colsRemainder>0) @@ -275,13 +275,13 @@ void UINineSlice::MakeSlices(std::string texture, int srcW, int srcH, int x0, in srcRect.h = rowsRemainder; destRect.w = colsRemainder; destRect.h = rowsRemainder; - AddSlice(srcRect,destRect,scale); + AddSlice(srcRect,destRect,scale,group); } } } } -void UINineSlice::AddSlice(SDL_Rect srcRect, SDL_Rect destRect, int scale) +void UINineSlice::AddSlice(SDL_Rect srcRect, SDL_Rect destRect, int scale, Game::groupLabels group) { auto& slice(manager.addEntity()); SDL_Rect scaledRect = SDL_Rect(); @@ -291,5 +291,5 @@ void UINineSlice::AddSlice(SDL_Rect srcRect, SDL_Rect destRect, int scale) scaledRect.h = destRect.h*scale; slice.addComponent(scaledRect.x, scaledRect.y, scaledRect.w, scaledRect.h, 1); slice.addComponent("textBox",SpriteComponent::spriteUIL0,srcRect,scaledRect); - slice.addGroup(Game::groupUI_Layer0); + slice.addGroup(group); } diff --git a/src/ui/UINineSlice.h b/src/ui/UINineSlice.h index ce26d31..77f1715 100644 --- a/src/ui/UINineSlice.h +++ b/src/ui/UINineSlice.h @@ -10,6 +10,7 @@ #include "SDL2/SDL.h" #include "string" +#include "../game/Game.hpp" class UINineSlice { @@ -18,8 +19,8 @@ public: SDL_Rect destRect; UINineSlice(std::string texID); ~UINineSlice(); - void MakeSlices(std::string texture, int srcW, int srcH, int x0, int x1, int y0, int y1, SDL_Rect destRect, int scale); - void AddSlice(SDL_Rect srcRect, SDL_Rect destRect, int scale); + void MakeSlices(std::string texture, int srcW, int srcH, int x0, int x1, int y0, int y1, SDL_Rect destRect, int scale, Game::groupLabels label); + void AddSlice(SDL_Rect srcRect, SDL_Rect destRect, int scale, Game::groupLabels label); private: }; diff --git a/src/ui/UIText.cpp b/src/ui/UIText.cpp index cc48278..3bff468 100644 --- a/src/ui/UIText.cpp +++ b/src/ui/UIText.cpp @@ -31,7 +31,7 @@ UIText::~UIText() { } -void UIText::ParseString(std::string inputText, int x, int y, int letterScale, std::string tag) +void UIText::ParseString(std::string inputText, int x, int y, int letterScale, std::string tag, Game::groupLabels group) { //Parse input text into an array of char int posX = x; @@ -51,17 +51,17 @@ void UIText::ParseString(std::string inputText, int x, int y, int letterScale, s posX = x; posY += letterHeight; } - UIText::AddLetter(posX, posY, current, tag, letterScale); + UIText::AddLetter(posX, posY, current, tag, letterScale, group); current = inputText[i]; } while ((strcmp(¤t,"\0"))!=0); } -void UIText::AddLetter(int xpos, int ypos, char crnt, std::string tag, int lttrScale) +void UIText::AddLetter(int xpos, int ypos, char crnt, std::string tag, int lttrScale, Game::groupLabels groupLabel) { auto& letter(manager.addEntity()); letter.addComponent(xpos*lttrScale, ypos*lttrScale, letterWidth, letterHeight, 1); letter.addComponent("font", SpriteComponent::spriteText, crnt, letterWidth, letterHeight, lttrScale); letter.setTag(tag); - letter.addGroup(Game::groupUI_Layer1); + letter.addGroup(groupLabel); } diff --git a/src/ui/UIText.h b/src/ui/UIText.h index 4025755..daa4481 100644 --- a/src/ui/UIText.h +++ b/src/ui/UIText.h @@ -10,6 +10,7 @@ #include "SDL2/SDL.h" #include +#include "../game/Game.hpp" class UIText { @@ -23,8 +24,8 @@ public: UIText(std::string inputText, std::string texID, int x, int y, int letterW, int letterH, int lScale); ~UIText(); - void AddLetter(int xpos, int ypos, char crnt, std::string tag, int lttrScale); - void ParseString(std::string inputText, int x, int y, int letterScale, std::string tag); + void AddLetter(int xpos, int ypos, char crnt, std::string tag, int lttrScale, Game::groupLabels groupLabel); + void ParseString(std::string inputText, int x, int y, int letterScale, std::string tag, Game::groupLabels group); int scale; };