Un segundo ejemplo tomado del tutorial para Cleo50, en específico este:
Tutorials > Tutorial 02 - Drawing Strings >d. Animated Strings
Este es el código empleado en Cleo50:
#include <SPI.h>
#include <CleO.h>
int minX = 75, minY = 15;
int maxX = 800 - minX, maxY = 480 - minY;
int startX = maxX / 2, startY = maxY / 2;
int deltaX = 2, deltaY = 2;
void setup() {
CleO.begin();
}
void loop()
{
CleO.Start();
CleO.StringExt(FONT_MEDIUM, startX, startY, LIGHT_GREEN, MM, 0, 0, "Hello world");
startX = startX + deltaX; startY = startY + deltaY;
if (startX >= maxX)
deltaX = -deltaX;
if (startX <= minX)
deltaX = abs(deltaX);
if (startY >= maxY)
deltaY = -deltaY;
if (startY <= minY)
deltaY = abs(deltaY);
CleO.Show();
}
Esta es la versión para GD3:
#include <SPI.h>
#include <GD3.h>
int minX = 75, minY = 15;
int maxX = 800 - minX, maxY = 480 - minY;
int startX = maxX / 2, startY = maxY / 2;
int deltaX = 2, deltaY = 2;
void setup()
{
GD.begin();
}
void loop()
{
GD.Clear();
GD.cmd_text(startX, startY, 31, OPT_CENTER, "Hello world");
startX = startX + deltaX; startY = startY + deltaY;
if (startX >= maxX)
deltaX = -deltaX;
if (startX <= minX)
deltaX = abs(deltaX);
if (startY >= maxY)
deltaY = -deltaY;
if (startY <= minY)
deltaY = abs(deltaY);
GD.swap();
}
Las analogías están por todas partes.