Екран#
Вступ#
Клас screen походить від базового класу brain. Він керує тим, як V5 Brain відображає текст, числа та графіку на сенсорному екрані, а також як він реагує на сенсорне введення.
За замовчуванням шрифт для друку в Brain — моноширинний малий, який має 12 рядків і 48 стовпців.
Для малювання роздільна здатність Brain становить 480 x 240 пікселів.

Доступ#
Доступ до класу screen можна отримати за допомогою:
Brain.Screen
Нотатки#
Об’єкт
screenнадається мозком. Він не конструюється безпосередньо.Проєкти використовують один глобальний об’єкт
Brain, тому функції екрану викликаються за допомогоюBrain.Screen.
Приклад#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the V5 Brain
brain Brain = brain();
// Print text to the Brain screen
Brain.Screen.print("Hello!");
Функції-члени#
Клас screen містить такі функції-члени:
print— Виводить відформатований текст, числа або логічні значення на екран Brain.setCursor— Переміщує текстовий курсор до вказаного рядка та стовпця.newLine— Очищає залишок поточного рядка та переміщує курсор на наступний рядок.clearLine— Очищає залишок поточного рядка або очищає вказаний рядок.row— Повертає рядок, у який буде надруковано текст.column— Повертає стовпець, у якому буде надруковано текст.getStringHeight— Повертає висоту рядка в пікселях, використовуючи поточний шрифт.getStringWidth— Повертає ширину рядка в пікселях, використовуючи поточний шрифт.printAt— Друкує відформатований текст у позиції пікселів x, y.clearScreen— Видаляє всі малюнки та текст з екрана Brain.setFont— Встановлює шрифт, який використовується для друку на екрані.setPenWidth— Встановлює товщину намальованих ліній та контурів фігур.setPenColor— Встановлює колір тексту, пікселів, ліній та контурів фігур.setFillColor— Встановлює колір заливки для намальованих фігур та фону друкованого тексту.setOrigin— Встановлює початок координат, що використовується для координат екрана.setClipRegion— Обмежує вивід на екран прямокутною областю.drawPixel— Малює один піксель за заданою координатою.drawLine— Малює лінію між двома точками.drawRectangle— Малює прямокутник у точці x, y із заданим розміром.drawCircle— Малює коло в точці x, y із заданим радіусом.drawImageFromFile— Малює зображення з файлу SD-карти на екрані.render— Вмикає подвійну буферизацію або відтворює зворотний буфер на екрані.pressing— Повертає, чи натискається екран у даний момент.xPosition— Повертає x-координату останнього натискання на екран.yPosition— Повертає y-координату останнього натискання на екран.pressed— Реєструє функцію зворотного виклику, яка запускається при натисканні на екран.released— Реєструє функцію зворотного виклику, яка запускається, коли екран відпускається після натискання.
Перед викликом будь-яких функцій-членів screen необхідно створити екземпляр brain , як показано нижче:
// Create the V5 Brain
brain Brain = brain();
print#
Відображає текст, числа або логічні значення на екрані V5 Brain.
Available Functions1 — Друкує відформатований текст за допомогою рядкових літералів або рядків у стилі C, доступних лише для читання.
void print( const char* format, ... );
Parameters2 — Друкує відформатований текст за допомогою змінюваних масивів символів.
void print( char* format, ... );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Рядок форматування, наданий як рядковий літерал або рядок у стилі C, доступний лише для читання (наприклад, |
|
|
Рядок форматування, наданий як змінний масив символів. |
|
Одне або кілька додаткових значень, що вставляються у рядок форматування, розділених комами. |
Ця функція не повертає значення.
NotesТекст, надрукований за допомогою параметра
printзавжди друкується з фоном, а колір фону визначається кольором заливки.Під час використання рядка форматування кількість та типи переданих значень повинні збігатися зі специфікаторами формату format specificiers у рядку.
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

setCursor#
Переміщує курсор до певного рядка та стовпця на екрані V5 Brain. Наступний виклик print почне друкувати з цього місця.
void setCursor(
int32_t row,
int32_t col );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Рядок, до якого потрібно перемістити курсор. |
|
|
Стовпець, до якого потрібно перемістити курсор. |
Ця функція не повертає значення.
NotesВпливає на початок наступного виводу тексту при використанні
print.Рядки та стовпці базуються на поточно встановленому шрифті екрана.
Шрифт за замовчуванням (
mono20) використовує 12 рядків та 48 стовпців.Виклик
setCursorвпливає лише на позицію наступного виводу тексту.
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

newLine#
Переміщує курсор на початок наступного рядка на екрані Brain.
Available Functionsvoid newLine();
Ця функція не приймає жодних параметрів.
Return ValuesЦя функція не повертає значення.
NotesЯкщо курсор знаходиться посередині речення,
newLineочистить решту рядка після курсора перед переходом до наступного рядка.Після виклику
newLineкурсор позиціонується у першому стовпці наступного рядка.Позиція курсора та нумерація рядків встановлюються за допомогою
setCursor.
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

clearLine#
Очищає текст з рядка на екрані V5 Brain.
Available Functions1 — Очищає решту поточного рядка від позиції курсора.
void clearLine();
2 — Очищає вказаний рядок, використовуючи поточний налаштований колір заливки.
void clearLine( int number );
3 — Очищає вказаний рядок за допомогою попередньо визначеного або об’єкта користувацький колір.
void clearLine( int number, const color& color );
4 — Очищає вказаний рядок, використовуючи шістнадцяткове значення кольору.
void clearLine( int number, const char* color );
Parameters5 — Очищає вказаний рядок, використовуючи значення відтінку.
void clearLine( int number, int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Номер рядка, який потрібно очистити. Нумерація рядків починається з |
|
|
Очищає рядок за допомогою об’єкта кольору
|
|
|
Очищає рядок, використовуючи шістнадцяткове значення кольору (наприклад, |
|
|
Очищає рядок, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesОчищення рядка не змінює поточну позицію курсора.
Позиція курсора та нумерація рядків встановлюються за допомогою
setCursor.Значення параметра
hueбазується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

// Display text on two rows
Brain.Screen.print("This text stays");
Brain.Screen.newLine();
Brain.Screen.print("This disappears");
// Wait 3 seconds before clearing row 2
wait(3, seconds);
Brain.Screen.clearLine(2);
row#
Повертає рядок, у якому текст буде надруковано на екрані V5 Brain.
Available Functionsint32_t row();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє рядок, у який буде надруковано текст.
Нумерація рядків починається з 1.
NotesПовернене значення вказує, де з’явиться наступний друкований вивід.
Значення рядка змінюється під час друку тексту або виклику функції
setCursor.
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

column#
Повертає стовпець, у якому текст буде надруковано на екрані V5 Brain.
Available Functionsint32_t column();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє стовпець, у який буде надруковано текст.
Нумерація стовпців починається з 1.
NotesПовернене значення вказує, де з’явиться наступний друкований вивід.
Значення стовпця змінюється під час друку тексту або виклику функції
setCursor.
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

getStringHeight#
Повертає висоту рядка в пікселях під час рендерингу на екрані V5 Brain.
Available Functionsint32_t getStringHeight(
const char* cstr );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Текст, який потрібно виміряти, у вигляді рядка у стилі C (наприклад, |
Повертає значення int32_t , яке представляє висоту рядка в пікселях під час рендерингу на екрані Brain.
Повернена висота залежить від вибраного на даний момент екранного шрифту.
Ця функція вимірює рядок, не відображаючи його на екрані.
Повернена висота відображає, як виглядатиме рядок після друку.
getStringWidth#
Повертає ширину рядка в пікселях під час відображення на екрані V5 Brain.
Available Functionsint32_t getStringWidth(
const char* cstr );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Текст, який потрібно виміряти, у вигляді рядка у стилі C (наприклад, |
Повертає значення int32_t , яке представляє ширину рядка в пікселях під час рендерингу на екрані Brain.
Повернена ширина залежить від вибраного на даний момент екранного шрифту.
Ця функція вимірює рядок, не відображаючи його на екрані.
Повернена ширина відображає, як рядок виглядатиме після друку.
printAt#
Друкує текст, числа або логічні значення за певною координатою на екрані V5 Brain.
Available Functions1 — Друкує відформатований вивід у вказаному місці пікселя.
void printAt( int32_t x, int32_t y, const char* format, ... );
Parameters2 — Друкує відформатований вивід у вказаному місці пікселя та встановлює, чи є фон тексту непрозорим чи прозорим.
void printAt( int32_t x, int32_t y, bool bOpaque, const char* format, ... );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Позиція x для друку, відносно початку координат на екрані. |
|
|
Позиція по осі Y для друку, відносно початку координат на екрані. |
|
|
Керує тим, чи друкований текст малюється непрозорим чи прозорим:
|
|
|
Рядок форматування, який контролює те, що друкується на екрані (наприклад, |
|
Одне або кілька додаткових значень, що вставляються у рядок форматування, розділених комами. |
Ця функція не повертає значення.
NotesКоординати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Під час використання рядка форматування кількість та типи переданих значень повинні збігатися зі специфікаторами формату format specificiers у рядку.
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

clearScreen#
Стирає всі малюнки та текст з екрана Brain та скидає позицію курсора до рядка 1, стовпця 1.
Available Functions1 — Очищає екран до чорного кольору.
void clearScreen();
2 — Очищає екран за допомогою попередньо визначеного або налаштованого об’єкта кольору власний колір.
void clearScreen( const color& color );
3 — Очищає екран, використовуючи шістнадцяткове значення кольору.
void clearScreen( const char* color );
Parameters4 — Очищає екран за допомогою значення відтінку.
void clearScreen( int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Очищає екран за допомогою об’єкта кольору
|
|
|
Очищає екран, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, |
|
|
Очищає екран, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesЗначення параметра
hueбазується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

// Clear screen after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen();
// Clear screen to blue after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen(blue);

setFont#
Встановлює шрифт, який використовується для тексту, що відображається на екрані V5 Brain.
Це керує шрифтом, що застосовується до наступного виводу тексту під час використання функцій екранного тексту, таких як print.
void setFont(
fontType font );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Встановлює одне з наступних значень шрифту:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
Ця функція не повертає значення.
Examples// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

// Print in Chinese
Brain.Screen.setFont(fontType::cjk16);
Brain.Screen.print("VEX机器人");

setPenWidth#
Встановлює товщину намальованих ліній та контурів фігур.
Available Functionsvoid setPenWidth(
uint32_t width );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Ширина пера, у пікселях, від 0 до 32. |
Ця функція не повертає значення.
NotesШирина пера застосовується до функцій малювання, таких як
drawLine,drawRectangleтаdrawCircle.
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

setPenColor#
Встановлює колір тексту, пікселів, ліній та контурів фігур.
Available Functions1 — Встановлює колір пера за допомогою попередньо визначеного або налаштованого об’єкта власний колір.
void setPenColor( const color& color );
2 — Встановлює колір пера, використовуючи шістнадцяткове значення кольору.
void setPenColor( const char* color );
Parameters3 — Встановлює колір пера за допомогою значення відтінку.
void setPenColor( int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Встановлює колір пера за допомогою об’єкта кольору
|
|
|
Встановлює колір пера, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, |
|
|
Встановлює колір пера, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesКолір пера за замовчуванням на початку проєкту —
white.Колір пера використовується для контурів фігур (наприклад, з
drawCircleабоdrawRectangle), текстового та числового виводу (зprintтаprintAt), а також окремих пікселів, намальованих за допомогоюdrawPixel.Значення параметра
hueбазується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

setFillColor#
Встановлює колір заливки, який використовується під час малювання фігур.
Available Functions1 — Встановлює колір заливки за допомогою попередньо визначеного або об’єкта користувацький колір.
void setFillColor( const color& color );
2 — Встановлює колір заливки, використовуючи шістнадцяткове значення кольору.
void setFillColor( const char* color );
Parameters3 — Встановлює колір заливки за допомогою значення відтінку.
void setFillColor( int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Встановлює колір заливки за допомогою об’єкта кольору
|
|
|
Встановлює колір заливки, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, |
|
|
Встановлює колір заливки, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesКолір заливки за замовчуванням на початку проєкту —
black.Колір заливки використовується для внутрішньої частини фігур (наприклад, з
drawCircleабоdrawRectangle).Колір заливки використовується як колір фону для друкованого тексту (наприклад, з
printтаprintAt).Якщо
transparentвикористовується для друкованого тексту, фон будеblack.
Значення параметра
hueбазується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

// Draw a rectangle filled with purple
Brain.Screen.setFillColor(purple);
Brain.Screen.drawRectangle(50, 100, 130, 60);

setOrigin#
Встановлює початок координат, який використовується для малювання та друку на основі координат на екрані Brain.
Available Functionsvoid setOrigin(
int32_t x,
int32_t y );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Положення початку координат за осями x відносно верхнього лівого кута екрана Brain від 0 до 479. |
|
|
Положення початку координат за осю Y відносно верхнього лівого кута екрана Brain від 0 до 239. |
Ця функція не повертає значення.
NotesПочатком координат за замовчуванням є верхній лівий кут екрана з координатою (0, 0).
Початок координат застосовується до функцій координат, таких як
drawLine,drawRectangle,drawCircleтаprintAt.Початок залишається чинним, доки його знову не змінять або проєкт не буде скинуто.
setClipRegion#
Визначає прямокутну область на екрані, де будуть обмежені всі малюнки та текст. Будь-який вміст поза цією областю не відображатиметься.
Available Functionsvoid setClipRegion(
int x,
int y,
int width,
int height );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x верхнього лівого кута області відсікання, задана як ціле число від 0 до 479. |
|
|
Y-координата верхнього лівого кута області відсікання, задана як ціле число від 0 до 239. |
|
|
Ширина області кліпу в пікселях, задана як ціле число від 0 до 479. |
|
|
Висота області кліпу в пікселях, задана як ціле число від 0 до 239. |
Ця функція не повертає значення.
NotesФункції малювання все ще виконуються, навіть якщо вони знаходяться за межами області кліпування, але видимою є лише частина всередині області.
Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Область відсікання застосовується лише до поточного потоку.
Встановлення нової області відсікання замінює будь-яку раніше встановлену область відсікання для поточного потоку.
// Restrict text and drawings to a specific region
Brain.Screen.setClipRegion(0, 0, 120, 120);
Brain.Screen.drawRectangle(60, 60, 100, 100, red);
Brain.Screen.printAt(60, 60, "Cut off!");

drawPixel#
Малює один піксель на екрані V5 Brain у вибраному місці пікселя x та y.
Available Functionsvoid drawPixel(
int x,
int y );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x, де буде намальовано піксель, задана як ціле число від 0 до 479. |
|
|
Координата Y, де буде намальовано піксель, задана як ціле число від 0 до 239. |
Ця функція не повертає значення.
NotesПікселі малюються з використанням поточного кольору пера, встановленого за допомогою
setPenColor.Координати
xтаyзалежать від поточного початку координат екрана, який можна встановити за допомогоюsetOrigin.Якщо вказане розташування пікселя знаходиться за межами екрана, піксель не відображатиметься.
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);
![]()
drawLine#
Малює пряму лінію, що з’єднує дві точки на екрані V5 Brain.
Available Functionsvoid drawLine(
int x1,
int y1,
int x2,
int y2 );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Початкова x-координата лінії, задана як ціле число від 0 до 479. |
|
|
Початкова координата y лінії, задана як ціле число від 0 до 239. |
|
|
Кінцева x-координата лінії, задана як ціле число від 0 до 479. |
|
|
Кінцева координата y лінії, задана як ціле число від 0 до 239. |
Ця функція не повертає значення.
NotesЛінії малюються з використанням поточного кольору пера, встановленого за допомогою
setPenColor.Ширина лінії визначається поточною шириною пера, встановленою за допомогою
setPenWidth.Координати
xтаyзалежать від поточного початку координат екрана, який можна встановити за допомогоюsetOrigin.Якщо будь-яка частина лінії виходить за межі екрана, малюється лише її видима частина.
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

drawRectangle#
Малює прямокутник на екрані V5 Brain у вказаному положенні та розмірі.
Available Functions1 — Малює та заповнює прямокутник, використовуючи поточний налаштований колір заливки.
void drawRectangle( int x, int y, int width, int height );
2 — Малює та заповнює прямокутник, використовуючи попередньо визначений або власний колір об’єкта користувацький колір.
void drawRectangle( int x, int y, int width, int height, const color& color );
3 — Малює та заповнює прямокутник, використовуючи шістнадцяткове значення кольору.
void drawRectangle( int x, int y, int width, int height, const char* color );
Parameters4 — Малює та заповнює прямокутник, використовуючи значення відтінку.
void drawRectangle( int x, int y, int width, int height, int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x верхнього лівого кута прямокутника, задана як ціле число від 0 до 479. |
|
|
Y-координата верхнього лівого кута прямокутника, задана як ціле число від 0 до 239. |
|
|
Ширина прямокутника, задана як ціле число від 0 до 479. |
|
|
Висота прямокутника, задана як ціле число від 0 до 239. |
|
|
Заповнює прямокутник за допомогою об’єкта кольору
|
|
|
Заповнює прямокутник шістнадцятковим значенням кольору (наприклад, |
|
|
Заповнює прямокутник значенням відтінку в діапазоні |
Ця функція не повертає значення.
NotesКонтур прямокутника малюється з використанням поточного кольору пера, встановленого за допомогою
setPenColor.Товщина контуру визначається поточною шириною пера, встановленою за допомогою
setPenWidth.Якщо параметр
colorне вказано, внутрішня частина прямокутника заповнюється поточним кольором заливки, встановленим за допомогоюsetFillColor.Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Якщо будь-яка частина прямокутника лежить за межами екрана, малюється лише видима частина.
Значення параметра
hueбазується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

drawCircle#
Малює коло на екрані V5 Brain у вказаному положенні та радіусі.
Available Functions1 — Малює та заповнює коло, використовуючи поточний налаштований колір заливки.
void drawCircle( int x, int y, int radius );
2 — Малює та заповнює коло, використовуючи попередньо визначений або власний колір об’єкта власний колір.
void drawCircle( int x, int y, int radius, const color& color );
3 — Малює та заповнює коло, використовуючи шістнадцяткове значення кольору.
void drawCircle( int x, int y, int radius, const char* color );
Parameters4 — Малює та заповнює коло, використовуючи значення відтінку.
void drawCircle( int x, int y, int radius, int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x центру кола, задана як ціле число від 0 до 479. |
|
|
Y-координата центру кола, задана як ціле число від 0 до 239. |
|
|
Радіус кола, заданий як ціле число від 0 до 239 пікселів. |
|
|
Заповнює коло за допомогою об’єкта кольору
|
|
|
Заповнює коло шістнадцятковим значенням кольору (наприклад, |
|
|
Заповнює коло значенням відтінку в діапазоні |
Ця функція не повертає значення.
NotesКонтур кола малюється з використанням поточного кольору пера, встановленого за допомогою
setPenColor.Товщина контуру визначається поточною шириною пера, встановленою за допомогою
setPenWidth.Якщо параметр
colorне вказано, внутрішня частина кола заповнюється поточним кольором заливки, встановленим за допомогоюsetFillColor.Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Значення параметра
hueбазується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

drawImageFromFile#
Малює зображення на екрані V5 Brain, використовуючи файл зображення, що зберігається на SD-карті.
Available Functionsbool drawImageFromFile(
const char* name,
int x,
int y );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Ім’я файлу зображення на SD-карті. Файл повинен мати розширення |
|
|
Координата x у пікселях від 0 до 479, на якій буде намальовано лівий край зображення. |
|
|
Координата Y у пікселях від 0 до 239, на якій буде намальовано верхній край зображення. |
Повертає логічне значення, яке вказує, чи було зображення успішно намальовано:
true— Зображення було успішно завантажено та намальовано на екрані.false— Зображення не вдалося намалювати (наприклад, якщо файл не існує або є недійсним).
Підтримувані формати зображень:
.bmpта.png.Розмір файлу зображення не повинен перевищувати
512 KBДля мінімізації розміру файлу рекомендується 8-бітне кодування RLE.
Максимальні підтримувані розміри зображення відповідають розміру екрана Brain (приблизно 479 x 239 пікселів).
Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);
render#
Вмикає подвійну буферизацію для екрана Brain. Після виклику будь-які функції малювання (наприклад, текст, фігури чи зображення) більше не відображатимуться негайно для решти проекту. Натомість оновлення відображатимуться лише тоді, коли знову буде використано render Це забезпечує плавніші та контрольованіші оновлення екрана, але означає, що нічого не буде видно, доки не буде використано render.
1 — Вмикає подвійну буферизацію або виводить дані зворотного буфера на екран.
bool render();
Parameters2 — Відтворює задній буфер на екрані з контролем вертикальної синхронізації та додатковим виконанням планувальника.
bool render( bool bVsyncWait, bool bRunScheduler = true );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
|
|
|
Необов’язково.
|
Повертає логічне значення, яке вказує, чи збережені малюнки в буфері були успішно відображені на екрані:
true— Малюнки були успішно відображені на екрані.false— Малюнки не вдалося відобразити на екрані.
Notes
Виклик
renderвимагатиме використанняrenderдля решти проєкту.
Brain.Screen.render();
// Draw text to the back buffer
Brain.Screen.print("Render later...");
// Wait for a screen press to render drawings
while (!Brain.Screen.pressing()) {
wait(20, msec);
}
Brain.Screen.render();
pressing#
Повідомляє, чи натискається екран V5 Brain на даний момент.
Available Functionsbool pressing();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає логічне значення, що вказує на поточний стан натискання екрана:true — Екран наразі натискається. або false — Екран не натискається.
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
wait(5, msec);
}
Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);
// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();
// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();
xPosition#
Повертає x-координату останнього натискання на екрані V5 Brain.
Available Functionsint32_t xPosition();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє x-координату останнього натискання на екран у пікселях від 0 до 479.
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
wait(5, msec);
}
Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);
yPosition#
Повертає y-координату останнього натискання на екрані V5 Brain.
Available Functionsint32_t yPosition();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє y-координату останнього натискання екрана в пікселях від 0 до 239.
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
wait(5, msec);
}
Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);
pressed#
Реєструє функцію, яка викликається при натисканні екрана V5 Brain.
Available Functions1 — Викликає функцію при натисканні на екран.
void pressed( void (*callback)(void) );
Parameters2 — Викликає функцію при натисканні на екран і передає визначений користувачем аргумент функції зворотного виклику.
void pressed( void (*callback)(void*), void* arg );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Функція, яка викликається при натисканні на екран. |
|
|
Функція, яка викликається при натисканні на екран і отримує визначений користувачем аргумент. |
|
|
Визначене користувачем значення, яке передається до функції зворотного виклику під час натискання екрана. |
Ця функція не повертає значення.
NotesФункція зворотного виклику виконується щоразу, коли натискається екран Brain.
Одночасно можна зареєструвати лише одну функцію зворотного виклику; повторний виклик
pressedзамінює попередній зворотний виклик.Функція зворотного виклику повинна повертати
void.
Визначити функцію зворотного виклику (поза
int main())// Tracks how many times the screen is pressed. void onScreenPressed(void* arg) { int* count = (int*)arg; (*count)++; Brain.Screen.clearScreen(); Brain.Screen.setCursor(1, 1); Brain.Screen.print("Pressed %d times", *count); }Зареєструйте зворотний виклик всередині
int main()int main() { int pressCount = 0; // Register the callback and pass a value to update. Brain.Screen.pressed(onScreenPressed, &pressCount); while (true) { wait(20, msec); } }
released#
Реєструє функцію, яка викликається, коли екран V5 Brain відпускається після натискання.
Available Functions1 — Викликає функцію, коли екран відпускається після натискання.
void released( void (*callback)(void) );
Parameters2 — Викликає функцію, коли екран відпускається після натискання, та передає визначений користувачем аргумент функції зворотного виклику.
void released( void (*callback)(void*), void* arg );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Функція, яка викликається, коли екран відпускається після натискання. |
|
|
Функція, яка викликається, коли екран відпускається після натискання, і отримує визначений користувачем аргумент. |
|
|
Визначене користувачем значення, яке передається до функції зворотного виклику, коли екран відпускається після натискання. |
Ця функція не повертає значення.
NotesФункція зворотного виклику виконується щоразу, коли екран Brain відпускається після натискання.
Одночасно може бути зареєстрована лише одна функція зворотного виклику; повторний виклик
releasedзамінює попередній зворотний виклик.Функція зворотного виклику повинна повертати
void.
Визначити функцію зворотного виклику (поза
int main())// Tracks how many times the screen is released. void onScreenReleased(void* arg) { int* count = (int*)arg; (*count)++; Brain.Screen.clearScreen(); Brain.Screen.setCursor(1, 1); Brain.Screen.print("Released %d times", *count); }Зареєструйте зворотний виклик всередині
int main()int main() { int releaseCount = 0; // Register the callback and pass a value to update. Brain.Screen.released(onScreenReleased, &releaseCount); while (true) { wait(20, msec); } }










