convert all DNA to uint8_t

This commit is contained in:
Nikola Petrov 2025-01-02 22:19:37 +01:00
parent 4d3474bc18
commit 8066ba5103
4 changed files with 33 additions and 18 deletions

View File

@ -18,7 +18,7 @@ private:
void drawStars();
void drawSun();
void drawMounten(size_t mountenSegments, int min, int max, Color color, float scale);
int getColorSet();
Dna *m_dna;
uint128 mountenSeed;

View File

@ -50,9 +50,11 @@ struct Branch
struct Dna
{
Moon moon;
int colorSet;
int time;
uint8_t moonX;
uint8_t moonY;
uint8_t moonSize;
uint8_t colorSet;
uint128 mountenSeed;
uint128 starSeed;
uint128 branchSeed;

View File

@ -28,10 +28,11 @@ void BackGround::draw(Dna *dna)
m_dna = dna;
mountenSeed = dna->mountenSeed;
starSeed = dna->starSeed;
int time = std::floor(Remap(m_dna->moonY / 255.0f, 0, 1, 4, 0));
int colorSet = getColorSet();
BackGroundColors::setColor(colorSet, time);
BackGroundColors::setColor(m_dna->colorSet, m_dna->time);
if (m_dna->colorSet == 3)
if (colorSet == 3)
{
ClearBackground(BackGroundColors::backGroundColor);
drawStars();
@ -89,21 +90,21 @@ void BackGround::drawStars()
void BackGround::drawSun()
{
int r = ((m_dna->moon.y * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize;
int xpos = Lerp(canvasSize * moonXOffset, canvasSize - canvasSize * moonXOffset, m_dna->moon.x);
int ypos = Lerp(canvasSize * moonXOffset, maxYPosOfMoon * canvasSize, m_dna->moon.y);
int r = ((m_dna->moonY / 255.0f * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize;
int xpos = Lerp(canvasSize * moonXOffset, canvasSize - canvasSize * moonXOffset, m_dna->moonX / 255.0f);
int ypos = Lerp(canvasSize * moonXOffset, maxYPosOfMoon * canvasSize, m_dna->moonY / 255.0f);
if (m_dna->colorSet == 3)
if (getColorSet() == 3)
{
Circle::setColor(BackGroundColors::moonColor);
r = ((m_dna->moon.size * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize;
r = (((m_dna->moonSize / 255.0f) * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize;
}
else
{
Color color = {0};
color.r = 255;
color.g = std::lerp(200, 50, m_dna->moon.y);
color.b = std::lerp(50, 0, m_dna->moon.y);
color.g = std::lerp(200, 50, m_dna->moonY / 255.0f);
color.b = std::lerp(50, 0, m_dna->moonY / 255.0f);
color.a = 255;
Circle::setColor(color);
@ -164,4 +165,16 @@ void BackGround::drawMounten(size_t mountenSegments, int min, int max, Color col
}
rlEnd();
rlSetTexture(0);
}
int BackGround::getColorSet()
{
uint8_t colorSet = m_dna->colorSet;
if (colorSet < 64)
return 0;
if (colorSet < 128)
return 1;
if (colorSet < 192)
return 2;
return 3;
}

View File

@ -7,10 +7,10 @@
void newDna(Dna &dna)
{
TraceLog(LOG_INFO, "SIZE OF DNA:%d", sizeof(dna));
dna.moon = {mrand::getFloat(), mrand::getFloat(), mrand::getFloat()};
dna.colorSet = mrand::getValue(0, 3);
dna.time = std::floor(Remap(dna.moon.y, 0, 1, 4, 0));
dna.moonX = mrand::getValue(0, 254);
dna.moonY = mrand::getValue(0, 254);
dna.moonSize = mrand::getValue(0, 254);
dna.colorSet = mrand::getValue(0, 254);
dna.mountenSeed.a = mrand::getInt();
dna.mountenSeed.b = mrand::getInt();