Feature: Line-break support for text

This commit is contained in:
Ray San 2015-10-21 18:24:44 +02:00
parent 165b3dd215
commit f13b30d606

View File

@ -293,6 +293,7 @@ void DrawTextEx(SpriteFont spriteFont, const char *text, Vector2 position, int f
{
int length = strlen(text);
int offsetX = 0;
int offsetY = 0; // Line break!
float scaleFactor;
unsigned char letter;
@ -323,13 +324,25 @@ void DrawTextEx(SpriteFont spriteFont, const char *text, Vector2 position, int f
rec = spriteFont.charRecs[letter - FONT_FIRST_CHAR + 64];
i++;
}
else
{
if ((unsigned char)text[i] == '\n')
{
offsetY += ((spriteFont.size + spriteFont.size/2)*scaleFactor);
offsetX = 0;
rec.x = -1;
}
else rec = spriteFont.charRecs[(int)text[i] - FONT_FIRST_CHAR];
}
DrawTexturePro(spriteFont.texture, rec, (Rectangle){ position.x + offsetX, position.y, rec.width*scaleFactor, rec.height*scaleFactor} , (Vector2){ 0, 0 }, 0.0f, tint);
if (rec.x > 0)
{
DrawTexturePro(spriteFont.texture, rec, (Rectangle){ position.x + offsetX, position.y + offsetY, rec.width*scaleFactor, rec.height*scaleFactor} , (Vector2){ 0, 0 }, 0.0f, tint);
offsetX += (rec.width*scaleFactor + spacing);
}
}
}
// Formatting of text with variables to 'embed'
const char *FormatText(const char *text, ...)