From c58f4a6af8970f24031fd1a0a5601af05f930e96 Mon Sep 17 00:00:00 2001 From: my Date: Wed, 18 Dec 2019 17:40:21 +0100 Subject: [PATCH] Weiter Logic Fehler changed. --- src/TextRenderer.cpp | 25 +++++++++++++++---------- src/TextRenderer.h | 3 +++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/TextRenderer.cpp b/src/TextRenderer.cpp index 4334ef6..d2fd844 100644 --- a/src/TextRenderer.cpp +++ b/src/TextRenderer.cpp @@ -73,22 +73,27 @@ void TextRenderer::update(std::string newText) { if(newText[i] == specialCharacter) { space -= 1; - currentX = ((i + space) % fontNumbersInOneLine) * (fontWidth + left_margin); - currentY = ((i + space) / fontNumbersInOneLine) * (fontHeight + bottom_margin); + int tempBlinkX = blinkX; + int tempBlinkY = blinkY; + int tempSpecialCharacterCurrentX = specialCharacterCurrentX; + int tempSpecialCharacterCurrentY = specialCharacterCurrentY; + char tempSpecialChar = _specialCharacter; + + specialCharacterCurrentX = ((i + space) % fontNumbersInOneLine) * (fontWidth + left_margin); + specialCharacterCurrentY = ((i + space) / fontNumbersInOneLine) * (fontHeight + bottom_margin); // blink.setCurrentX(currentX + fontWidth); // blink.setCurrentY(currentY); - int tempBlinkX = blinkX; - int tempBlinkY = blinkY; - blinkX = currentX + fontWidth; - blinkY = currentY; + blinkX = specialCharacterCurrentX + fontWidth; + blinkY = specialCharacterCurrentY; + _specialCharacter = newText[i - 1]; + + characterBitmap = getCharacter(_specialCharacter, font); + translateToSharedMemory(characterBitmap, specialCharacterCurrentX, specialCharacterCurrentY, speicialFontColor); clear(tempBlinkX, tempBlinkY, tempBlinkX + 1, tempBlinkY + fontHeight); - - characterBitmap = getCharacter(newText[i - 1], font); - - translateToSharedMemory(characterBitmap, currentX, currentY, speicialFontColor); + translateToSharedMemory(getCharacter(tempSpecialChar), tempSpecialCharacterCurrentX, tempSpecialCharacterCurrentY, fontColor); } else { currentLine = ((i + space) / fontNumbersInOneLine); diff --git a/src/TextRenderer.h b/src/TextRenderer.h index 7c83796..bc42bf6 100644 --- a/src/TextRenderer.h +++ b/src/TextRenderer.h @@ -57,6 +57,9 @@ private: Font font; char returnCharacter = '\n'; char specialCharacter = -127; + int specialCharacterCurrentX; + int specialCharacterCurrentY; + char _specialCharacter; int fontSize = 1; int left_margin = 1; int bottom_margin = 1;