Add adaptive text size
This commit is contained in:
parent
d32c2fafb3
commit
a0756a152f
@ -37,4 +37,7 @@ private:
|
|||||||
std::array<Unit, 2> unit = {0};
|
std::array<Unit, 2> unit = {0};
|
||||||
|
|
||||||
DnaManager manager;
|
DnaManager manager;
|
||||||
|
|
||||||
|
Rectangle likedTextBox;
|
||||||
|
Rectangle genTextBox;
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include <raylib.h>
|
#include <raylib.h>
|
||||||
|
|
||||||
Color ColorAdd(Color c1, Color c2);
|
Color ColorAdd(Color c1, Color c2);
|
||||||
Color ColorAddValue(Color c, int add);
|
Color ColorAddValue(Color c, int add);
|
||||||
|
Rectangle TextInSpace(Rectangle box, float textH, float textW, float margin);
|
28
src/App.cpp
28
src/App.cpp
@ -7,9 +7,14 @@
|
|||||||
#include <raylib.h>
|
#include <raylib.h>
|
||||||
#include <raymath.h>
|
#include <raymath.h>
|
||||||
|
|
||||||
#define TOP 1 - pos
|
#define TOP (1 - pos)
|
||||||
#define BOTTOM pos
|
#define BOTTOM pos
|
||||||
|
|
||||||
|
// Dimentions for font size 20
|
||||||
|
// DISLIKE 83
|
||||||
|
// LIKE 46
|
||||||
|
// GEN 9999: 999/999 -> 196
|
||||||
|
|
||||||
void App::init(int screenWidth, int screenHeight)
|
void App::init(int screenWidth, int screenHeight)
|
||||||
{
|
{
|
||||||
this->screenWidth = screenWidth;
|
this->screenWidth = screenWidth;
|
||||||
@ -37,10 +42,22 @@ void App::init(int screenWidth, int screenHeight)
|
|||||||
|
|
||||||
float posY = (screenHeight - screenWidth) / 2.0f;
|
float posY = (screenHeight - screenWidth) / 2.0f;
|
||||||
|
|
||||||
|
likedTextBox = TextInSpace({0,
|
||||||
|
0,
|
||||||
|
(float)screenWidth,
|
||||||
|
posY},
|
||||||
|
20.0f, 83.0f, 0.02f);
|
||||||
|
|
||||||
|
genTextBox = TextInSpace({0,
|
||||||
|
posY + screenWidth,
|
||||||
|
(float)screenWidth,
|
||||||
|
posY},
|
||||||
|
20.0f, 196.0f, 0.02f);
|
||||||
|
|
||||||
destB = {0, posY, (float)screenWidth, (float)screenWidth};
|
destB = {0, posY, (float)screenWidth, (float)screenWidth};
|
||||||
destA = destB;
|
destA = destB;
|
||||||
|
|
||||||
float recPosX = screenWidth * 0.2f;
|
float recPosX = screenWidth * 0.3f;
|
||||||
disLikeBox = {0, posY, (float)recPosX, (float)screenWidth};
|
disLikeBox = {0, posY, (float)recPosX, (float)screenWidth};
|
||||||
likeBox = {screenWidth - recPosX, posY, (float)recPosX, (float)screenWidth};
|
likeBox = {screenWidth - recPosX, posY, (float)recPosX, (float)screenWidth};
|
||||||
}
|
}
|
||||||
@ -116,6 +133,7 @@ void App::update()
|
|||||||
}
|
}
|
||||||
rotation = 0.0f;
|
rotation = 0.0f;
|
||||||
destA = destB;
|
destA = destB;
|
||||||
|
topLiked = Liked::tbd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,15 +149,15 @@ void App::draw()
|
|||||||
DrawTexturePro(canvasTexure[TOP].texture, source, destA, origin, 360 - rotation, WHITE);
|
DrawTexturePro(canvasTexure[TOP].texture, source, destA, origin, 360 - rotation, WHITE);
|
||||||
|
|
||||||
const char *text = TextFormat("GEN %d: %d / %d", manager.generation, unit[TOP].index + 1, NUM_PER_GEN);
|
const char *text = TextFormat("GEN %d: %d / %d", manager.generation, unit[TOP].index + 1, NUM_PER_GEN);
|
||||||
DrawText(text, destB.x + 10, destB.y - 30, 20, BLACK);
|
DrawText(text, genTextBox.x, genTextBox.y, genTextBox.height, BLACK);
|
||||||
|
|
||||||
switch (topLiked)
|
switch (topLiked)
|
||||||
{
|
{
|
||||||
case Liked::yes:
|
case Liked::yes:
|
||||||
DrawText("LIKED", destB.x + 10, destB.y - 50, 20, BLACK);
|
DrawText("LIKED", likedTextBox.x, likedTextBox.y, likedTextBox.height, BLACK);
|
||||||
break;
|
break;
|
||||||
case Liked::no:
|
case Liked::no:
|
||||||
DrawText("DISLIKE", destB.x + 10, destB.y - 50, 20, BLACK);
|
DrawText("DISLIKE", likedTextBox.x, likedTextBox.y, likedTextBox.height, BLACK);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
30
src/Math.cpp
30
src/Math.cpp
@ -23,4 +23,34 @@ Color ColorAdd(Color c1, Color c2)
|
|||||||
int a = std::clamp(c1.a + c2.a, 0, 255);
|
int a = std::clamp(c1.a + c2.a, 0, 255);
|
||||||
|
|
||||||
return {(unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a};
|
return {(unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a};
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle TextInSpace(Rectangle box, float textH, float textW, float margin)
|
||||||
|
{
|
||||||
|
float br = box.width / box.height;
|
||||||
|
float tr = textW / textH;
|
||||||
|
|
||||||
|
Rectangle ret = {0, 0, 0, 0};
|
||||||
|
|
||||||
|
float hm = box.height * margin;
|
||||||
|
float wm = box.width * margin;
|
||||||
|
|
||||||
|
ret.y = box.y + hm;
|
||||||
|
ret.x = box.x + wm;
|
||||||
|
|
||||||
|
ret.height = box.height - hm;
|
||||||
|
ret.width = box.width - wm;
|
||||||
|
|
||||||
|
if (br < tr)
|
||||||
|
{
|
||||||
|
// bolj kvadrat izracunaj visino iz sirine
|
||||||
|
ret.height = ret.width / tr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// bolj podolgovat izracunaj sirino iz visine
|
||||||
|
ret.width = ret.height * tr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user