Arduino:Примеры/sprite animation: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
Строка 9: | Строка 9: | ||
==Код== | ==Код== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#include <Sprite.h> | #include <Sprite.h> | ||
#include <Matrix.h> | #include <Matrix.h> |
Версия от 18:20, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Спрайтовая анимация[1]
Этот скетч демонстрирует, как при помощи библиотеки Matrix и платы Arduino показать на дисплее спрайтовую анимацию волны, двигающейся слева направо.
Код
#include <Sprite.h>
#include <Matrix.h>
// Спрайтовая анимация
// Создан Николасом Замбетти (Nicholas Zambetti)
// <http://www.zambetti.com>
// Демонстрирует использование библиотек Matrix и Sprite.
// Показывает на дисплее анимацию волны.
// Создан 29 марта 2006 года.
/* Создаем новый экземпляр класса Matrix.
контакт 0: данные (din)
контакт 1: загрузка (load)
контакт 2: тактовый сигнал (clk)
*/
Matrix myMatrix = Matrix(0, 2, 1);
/* Создаем новый экземпляр класса Sprite.
Ширина – 8 пикселей, высота – 4 пикселя.
*/
Sprite wave = Sprite(
8, 4,
B00011000,
B00100100,
B01000010,
B10000001
);
void setup()
{
}
int x = 0;
void loop()
{
myMatrix.write(x, 2, wave); // размещаем спрайт на экране
myMatrix.write(x - 8, 2, wave); // снова размещаем спрайт на экране, но в другом месте
delay(75); // немного ждем
myMatrix.clear(); // очищаем экран для следующего кадра анимации
if(x == 8) // если достигли последнего кадра анимации...
{
x = 0; // ...начинаем сначала
}
x++; // постепенно продвигаемся вперед по оси X
}