scolled text scrolled to left worksd
This commit is contained in:
@@ -15,10 +15,12 @@ Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
|
||||
|
||||
TextNode text_nodes[MAX_TEXT_NODES_COUNT];
|
||||
|
||||
Cursor cursor;
|
||||
|
||||
void addNewTextNode
|
||||
(
|
||||
char text[TEXT_MAX_LENGTH + 1], uint32_t color = 0x00010101, unsigned short pos_x = 65535, unsigned short pos_y = 0,
|
||||
bool is_small = true
|
||||
char text[TEXT_MAX_LENGTH + 1], uint32_t color = 0x00010101, unsigned short pos_x = 0, unsigned short pos_y = 0,
|
||||
unsigned char scroll_slowness = 1, bool is_scrolling = true, bool is_small = true
|
||||
)
|
||||
{
|
||||
unsigned char text_length = strlen(text);
|
||||
@@ -34,21 +36,26 @@ void addNewTextNode
|
||||
text_nodes[i].characterSize.height = is_small ? SMALL_TEXT_HEIGHT : MEDIUM_TEXT_HEIGHT;
|
||||
text_nodes[i].characterSize.width = is_small ? SMALL_TEXT_WIDTH : MEDIUM_TEXT_WIDTH;
|
||||
text_nodes[i].character_count = text_length;
|
||||
text_nodes[i].scroll_slowness = scroll_slowness;
|
||||
text_nodes[i].is_scrolling = is_scrolling;
|
||||
text_nodes[i].is_deleted = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void drawTextNodes()
|
||||
void drawTextNodes(bool reset_cursor = true)
|
||||
{
|
||||
for (unsigned char i = 0; i < MAX_TEXT_NODES_COUNT; i++)
|
||||
{
|
||||
if (!text_nodes[i].is_deleted)
|
||||
{
|
||||
Cursor cursor;
|
||||
cursor.x = text_nodes[i].pos_x;
|
||||
cursor.y = text_nodes[i].pos_y;
|
||||
if (reset_cursor)
|
||||
{
|
||||
cursor.x = text_nodes[i].pos_x;
|
||||
cursor.y = text_nodes[i].pos_y;
|
||||
|
||||
}
|
||||
|
||||
for (unsigned char j = 0; j < text_nodes[i].character_count; j++)
|
||||
{
|
||||
@@ -57,13 +64,32 @@ void drawTextNodes()
|
||||
{
|
||||
ch = ' ';
|
||||
}
|
||||
drawCharacter(font7x5[ch - '!'], text_nodes[i].characterSize.height, text_nodes[i].characterSize.width, text_nodes[i].color, &cursor);
|
||||
|
||||
drawCharacter(font7x5[ch - ' '], text_nodes[i].characterSize.height, text_nodes[i].characterSize.width, text_nodes[i].color, &cursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// void scrollTextNodeByAmount(unsigned )
|
||||
void scrollAllScrollableTexts()
|
||||
{
|
||||
for (unsigned char i = 0; i < MAX_TEXT_NODES_COUNT; i++)
|
||||
{
|
||||
if (!text_nodes[i].is_deleted && text_nodes[i].is_scrolling)
|
||||
{
|
||||
if (text_nodes[i].pos_y < 7)
|
||||
{
|
||||
shiftGivenRectangleLeft(text_nodes[i].pos_x, text_nodes[i].pos_y, text_nodes[i].characterSize.width * text_nodes[i].character_count, text_nodes[i].characterSize.height, text_nodes[i].scroll_slowness);
|
||||
text_nodes[i].pos_x -= text_nodes[i].scroll_slowness;
|
||||
}
|
||||
else
|
||||
{
|
||||
shiftGivenRectangleRight(text_nodes[i].pos_x, text_nodes[i].pos_y, text_nodes[i].characterSize.width * text_nodes[i].character_count, text_nodes[i].characterSize.height, text_nodes[i].scroll_slowness);
|
||||
text_nodes[i].pos_x += text_nodes[i].scroll_slowness;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
@@ -72,7 +98,8 @@ void setup()
|
||||
pixels.begin();
|
||||
pixels.clear();
|
||||
|
||||
addNewTextNode("TEst", 0x0001700, 0, 0, true);
|
||||
addNewTextNode("NET", 0xFF150000);
|
||||
addNewTextNode("FAILED", 0xFF150000, 0, 9);
|
||||
drawTextNodes();
|
||||
|
||||
pixels.show();
|
||||
@@ -81,7 +108,7 @@ void setup()
|
||||
|
||||
void loop()
|
||||
{
|
||||
shiftGivenRectangleLefr(0, 0, 23, 7, 1);
|
||||
scrollAllScrollableTexts();
|
||||
pixels.show();
|
||||
handle_server();
|
||||
}
|
||||
Reference in New Issue
Block a user