Команди Matrix (матриця) контролюють 8x8 світлодіодну матрицю на BOLT та LCD-екран на BOLT+.

playMatrixAnimation(0, true) встановлює зображення (1 кадр) або анімацію (більше ніж 1 кадр) на матриці, використовуючи 4 характеристики: кадри, палітру (обмежену 16 кольорами на анімацію), fps (швидкість від 1 до 30 кадрів на секунду) і стиль переходу (згасання або без нього).
Використовуйте true для повторення анімації у циклі або false, щоб відтворити її лише один раз.
Якщо встановлено true, анімація буде відтворюватися до переривання новою командою playMatrixAnimation(x), clearMatrix(), pauseMatrixAnimation() або resumeMatrixAnimation().
Анімації важко створювати в текстовій програмі, тому ми рекомендуємо генерувати їх у програмі на блоках і копіювати код.
Ви не можете змінювати анімацію під час виконання програми, оскільки додаток Sphero Edu попередньо завантажує анімації на роботі при запуску програми.
Анімації можуть займати великий обсяг даних, і їх неможливо передавати в реальному часі через обмеження пропускної здатності Bluetooth.
Приклад коду для анімації обличчя зі смайликом:

async function startProgram() {
playMatrixAnimation(0);
}
registerMatrixAnimation({
frames: [[[1, 1, 6, 6, 6, 6, 1, 1], [1, 6, 6, 6, 6, 6, 6, 1], [6, 6, 1, 6, 6, 1, 6, 6], [6, 6, 6, 6, 6, 6, 6, 6], [6, 6, 6, 1, 1, 6, 6, 6], [6, 6, 6, 1, 1, 6, 6, 6], [1, 6, 6, 6, 6, 6, 6, 1], [1, 1, 6, 6, 6, 6, 1, 1]], [[6, 6, 6, 6, 6, 6, 6, 6], [6, 6, 1, 6, 6, 1, 6, 6], [6, 6, 1, 6, 6, 1, 6, 6], [6, 1, 1, 6, 6, 1, 1, 6], [6, 6, 6, 6, 6, 6, 6, 6], [6, 1, 1, 1, 1, 1, 1, 6], [1, 6, 1, 1, 1, 1, 6, 1], [1, 1, 6, 6, 6, 6, 1, 1]]],
palette: [{ r: 255, g: 255, b: 255 }, { r: 0, g: 0, b: 0 }, { r: 255, g: 0, b: 0 }, { r: 255, g: 16, b: 0 }, { r: 255, g: 128, b: 0 }, { r: 255, g: 191, b: 0 }, { r: 255, g: 255, b: 0 }, { r: 185, g: 246, b: 30 }, { r: 0, g: 255, b: 0 }, { r: 185, g: 255, b: 255 }, { r: 0, g: 255, b: 255 }, { r: 0, g: 0, b: 255 }, { r: 145, g: 0, b: 211 }, { r: 157, g: 48, b: 118 }, { r: 255, g: 0, b: 255 }, { r: 204, g: 27, b: 126 }],
fps: 6,
transition: MatrixAnimationTransition.None
});

await scrollMatrixText('hi mom!', { r: 66, g: 56, b: 255 }, 30, true) відображає рядок тексту.
Ви також можете використовувати конструктор рядків для включення або конкатенації змінних та значень сенсорів.
Ви обмежені 25 ASCII-символами, одним кольором тексту та можете встановити швидкість кадрів від 1 до 30.
Ви можете використовувати оператор buildString() для конкатенації динамічних рядків і значень.
Коли починається прокручування тексту, використання true змусить програму чекати завершення прокручування перед тим, як перейти до наступної команди, тоді як використання false дозволить програмі негайно перейти до наступної команди.

clearMatrix() очищає матрицю, вимикаючи всі світлодіоди матриці.
Наприклад, це корисно, якщо ви хочете змінити відображення з playMatrixAnimation(x) на setMainLed().

setMatrixRotation(MatrixRotation.0) обертає напрямок відображення матриці для всіх наступних анімацій і прокручуваних текстів.
0° — це стандартний напрямок, в якому точка початку (0, 0) знаходиться в лівому нижньому куті матриці. 90° — вправо, 270° — вліво, 180° — вниз головою.


pauseMatrixAnimation() ставить на паузу анімацію або прокручування тексту.
Використовуйте resumeMatrixAnimation(), щоб відновити анімацію після паузи і почати з останнього кадру.

overrideMatrixAnimationFramerate() встановлює частоту кадрів для всіх наступних анімацій від 1 до 30 кадрів на секунду.
Ця частота перевизначає частоту кадрів, встановлену в визначенні анімації.
Встановіть overrideMatrixAnimationFramerate(0), щоб вимкнути це перевизначення та використовувати стандартну частоту кадрів для наступних анімацій матриці у вашій програмі.

overrideMatrixAnimationTransition(MatrixAnimationTransition.Fade) встановлює перехід між кадрами анімації, щоб використовувати ефект згасання, а overrideMatrixAnimationTransition(MatrixAnimationTransition.None) встановлює перехід без згасання.
Цей перехід перевизначає тип, встановлений для наступних анімацій матриці.
Встановіть overrideMatrixAnimationTransition(), щоб вимкнути це перевизначення і використовувати стандартний перехід для наступних анімацій.
Коли використовується перехід згасання, кольори світлодіодів матриці будуть згасати між кожним кадром. Цей ефект не буде помітним, якщо частота кадрів висока (наприклад, 30 кадрів на секунду), але буде помітний при низькій частоті кадрів.
Коли частота кадрів низька, ви побачите, як кожен колір світлодіода зливається з кольором, встановленим у наступному кадрі.

setMatrixCharacter() відображає один ASCII-символ на світлодіодній матриці, вказуючи колір.
Наприклад, використовуйте setMatrixCharacter('z', { r: 255, g: 255, b: 255 }), щоб відобразити "z" білим кольором.
Ви можете програмно малювати пікселі, лінії та заповнені області на матриці за допомогою цих трьох команд:

drawMatrixPixel({ r: 0, g: 0, b: 255 }, { x: 2, y: 3 }) малює один піксель на координатах (x, y) (2, 3).

drawMatrixLine({ r: 0, g: 0, b: 255 }, { x: 2, y: 3 }, { x: 2, y: 7 }) малює лінію від координат (x, y) (2, 3) до (x, y) (2, 7).
Лінії можна малювати тільки між прямими або діагональними з'єднаннями пікселів. Якщо ви надасте пікселі, які не є в лінії, нічого не буде намальовано.

drawMatrixFill({ r: 0, g: 0, b: 255 }, { x: 0, y: 1}, { x: 6, y: 7 }) малює заповнений кольоровий прямокутник від координат (x, y) (0, 1) до (x, y) (6, 7).
