Arduino:Примеры/sprite animation

Материал из Онлайн справочника
Версия от 09:27, 14 декабря 2016; 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">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Спрайтовая анимация[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
}

См.также

Внешние ссылки