add file
This commit is contained in:
parent
e25c8d4cd5
commit
6a26bbd859
BIN
TextScroller/a.out
Executable file
BIN
TextScroller/a.out
Executable file
Binary file not shown.
91
TextScroller/main.cpp
Normal file
91
TextScroller/main.cpp
Normal file
@ -0,0 +1,91 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include<unistd.h> // for linux
|
||||
|
||||
using namespace std;
|
||||
|
||||
const string COLOR_ANSI = "\033[38;2;";
|
||||
int color[] = {255, 0, 0};
|
||||
//bool incDec[] = {false, true, true};
|
||||
int currentColor = 1;
|
||||
int colorIterator = 0;
|
||||
|
||||
std::string updateColor() {
|
||||
if (colorIterator >= 255) {
|
||||
currentColor++;
|
||||
colorIterator = 0;
|
||||
}
|
||||
if (currentColor > 2) {
|
||||
currentColor = 0;
|
||||
}
|
||||
switch (currentColor) {
|
||||
case 0:
|
||||
if (color[0] < 255) {
|
||||
color[0]++;
|
||||
}
|
||||
if (color[1] > 0) {
|
||||
color[1]--;
|
||||
}
|
||||
if (color[2] > 0) {
|
||||
color[2]--;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (color[0] > 0) {
|
||||
color[0]--;
|
||||
}
|
||||
if (color[1] < 255) {
|
||||
color[1]++;
|
||||
}
|
||||
if (color[2] > 0) {
|
||||
color[2]--;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (color[0] > 0) {
|
||||
color[0]--;
|
||||
}
|
||||
if (color[1] > 0) {
|
||||
color[1]--;
|
||||
}
|
||||
if (color[2] < 255) {
|
||||
color[2]++;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
colorIterator++;
|
||||
return COLOR_ANSI + std::to_string(color[0]) + ";" + std::to_string(color[1]) + ";" + std::to_string(color[2])+ "m";
|
||||
}
|
||||
|
||||
|
||||
int main() {
|
||||
//printf("Hello World!\n");
|
||||
std::system("clear");
|
||||
string input = "Scrolling text in C++! ";
|
||||
input += input;
|
||||
input += input;
|
||||
input += input;
|
||||
string colorStr = "";
|
||||
for (int i = 0;; ++i) {
|
||||
//printf("\033[H");
|
||||
//colorStr = updateColor();
|
||||
//printf ("RGB: %u, %u, %u; colorIterator: %u; currentColor: %u\n", color[0], color[1], color[2], colorIterator, currentColor);
|
||||
//printf("\n %d ", (i + 1));
|
||||
for (int j = 0; j < input.size() - 1; ++j) {
|
||||
printf("%s%c", updateColor().c_str(), input.at(j));
|
||||
//updateColor();
|
||||
}
|
||||
cout << "\n";
|
||||
//printf("%s %d %s\n", colorStr.c_str(), (i + 1), input.c_str());
|
||||
|
||||
input = input.substr((input.size() - 1), input.size()) + input.substr(0, (input.size() - 1));
|
||||
usleep(100000);
|
||||
// Clear screen
|
||||
//std::system("clear");
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user