#include <iostream>
#include <string>
// to jest tylko przyklad
class Text
{
public:
// jakaś pozycja i wymiary oraz jaki tekst ma być renderowany
Text(int x, int y, int w, int h, std::string render_text)
{
// ustawie tylko nazwe, bo to jest tylko przyklad
text = std::move(render_text);
}
void update(std::string render_text) // aktualizujesz tekst tutaj
{
text = std::move(render_text);
}
// To tylko dla przykładu. Zwykle tekst się renderuje w bilbiotece graficznej
void print()
{
using namespace std;
cout << text << endl;
}
private:
std::string text;
};
int main() {
using namespace std;
Text play{ 2, 3, 4, 5, "PLAY" };
Text quit{ 23, 45, 3, 5, "QUIT" };
// Powiedzmy, że w jakiejś częsci projektu jest ta zmienna:
int lives = 10;
// Tak można to zrobić, żeby zmienna była wyświetlana obok:
Text lives_text{ 23, 32, 45, 67, "LIVES: " + std::to_string(lives) };
cout << "Zycia przed upadkiem: \n";
lives_text.print();
// Powiedzmy, że coś spadlo i tracisz życie(taki przykład):
cout << "Zycia po upadku: \n";
lives--;
// Tekst "LIVES: ", można ustawić jako stały w jakiejś części projektu
lives_text.update("LIVES: " + std::to_string(lives));
lives_text.print();
// I jakaś pętla
while (lives--){
lives_text.update("LIVES: " + std::to_string(lives));
lives_text.print();
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKLy8gdG8gamVzdCB0eWxrbyBwcnp5a2xhZApjbGFzcyBUZXh0CnsKcHVibGljOgoJLy8gamFrYcWbIHBvenljamEgaSB3eW1pYXJ5IG9yYXogamFraSB0ZWtzdCBtYSBiecSHIHJlbmRlcm93YW55CglUZXh0KGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLCBzdGQ6OnN0cmluZyByZW5kZXJfdGV4dCkgCgl7CgkJLy8gdXN0YXdpZSB0eWxrbyBuYXp3ZSwgYm8gdG8gamVzdCB0eWxrbyBwcnp5a2xhZAoJCXRleHQgPSBzdGQ6Om1vdmUocmVuZGVyX3RleHQpOwoJfQoJCgl2b2lkIHVwZGF0ZShzdGQ6OnN0cmluZyByZW5kZXJfdGV4dCkgLy8gYWt0dWFsaXp1amVzeiB0ZWtzdCB0dXRhagoJewoJCXRleHQgPSBzdGQ6Om1vdmUocmVuZGVyX3RleHQpOwoJfQoJCgkvLyBUbyB0eWxrbyBkbGEgcHJ6eWvFgmFkdS4gWnd5a2xlIHRla3N0IHNpxJkgcmVuZGVydWplIHcgYmlsYmlvdGVjZSBncmFmaWN6bmVqCgl2b2lkIHByaW50KCkKCXsKCQl1c2luZyBuYW1lc3BhY2Ugc3RkOwoJCWNvdXQgPDwgdGV4dCA8PCBlbmRsOwoJfQpwcml2YXRlOgoJc3RkOjpzdHJpbmcgdGV4dDsKfTsKCmludCBtYWluKCkgewoJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCQoJCglUZXh0IHBsYXl7IDIsIDMsIDQsIDUsICJQTEFZIiB9OwoJVGV4dCBxdWl0eyAyMywgNDUsIDMsIDUsICJRVUlUIiB9OwoJCgkvLyBQb3dpZWR6bXksIMW8ZSB3IGpha2llasWbIGN6xJlzY2kgcHJvamVrdHUgamVzdCB0YSB6bWllbm5hOgoJaW50IGxpdmVzID0gMTA7CgkKCS8vIFRhayBtb8W8bmEgdG8genJvYmnEhywgxbxlYnkgem1pZW5uYSBiecWCYSB3ecWbd2lldGxhbmEgb2JvazoKCVRleHQgbGl2ZXNfdGV4dHsgMjMsIDMyLCA0NSwgNjcsICJMSVZFUzogIiArIHN0ZDo6dG9fc3RyaW5nKGxpdmVzKSB9OwoJCgljb3V0IDw8ICJaeWNpYSBwcnplZCB1cGFka2llbTogXG4iOwoJbGl2ZXNfdGV4dC5wcmludCgpOwoJCgkvLyBQb3dpZWR6bXksIMW8ZSBjb8WbIHNwYWRsbyBpIHRyYWNpc3ogxbx5Y2llKHRha2kgcHJ6eWvFgmFkKToKCWNvdXQgPDwgIlp5Y2lhIHBvIHVwYWRrdTogXG4iOwoJbGl2ZXMtLTsKCQoJLy8gVGVrc3QgIkxJVkVTOiAiLCBtb8W8bmEgdXN0YXdpxIcgamFrbyBzdGHFgnkgdyBqYWtpZWrFmyBjesSZxZtjaSBwcm9qZWt0dQoJbGl2ZXNfdGV4dC51cGRhdGUoIkxJVkVTOiAiICsgc3RkOjp0b19zdHJpbmcobGl2ZXMpKTsKCQoJbGl2ZXNfdGV4dC5wcmludCgpOwoJCgkvLyBJIGpha2HFmyBwxJl0bGEKCQoJd2hpbGUgKGxpdmVzLS0pewoJCWxpdmVzX3RleHQudXBkYXRlKCJMSVZFUzogIiArIHN0ZDo6dG9fc3RyaW5nKGxpdmVzKSk7CgkJbGl2ZXNfdGV4dC5wcmludCgpOwoJfQp9