Экран#
Введение#
Класс screen является производным от базового класса brain. Он управляет тем, как V5 Brain отображает текст, цифры и графику на своем сенсорном экране, а также тем, как он реагирует на сенсорный ввод.
По умолчанию для печати в Brain используется шрифт моноширинный малый, имеющий 12 строк и 48 столбцов.
Для рисования разрешение мозга составляет 480 x 240 пикселей.

Доступ#
Доступ к классу screen можно получить следующим образом:
Brain.Screen
Примечания#
Объект
screenпредоставляется модулем Brain. Он не создается напрямую.В проектах используется один глобальный объект Brain
Brain, поэтому функции экрана вызываются с помощью Brain.ScreenBrain.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— Удаляет все рисунки и текст с экрана Мозга.setFont— Устанавливает шрифт, используемый для печати на экране.setPenWidth— Задает толщину нарисованных линий и контуров фигур.setPenColor— Задает цвет текста, пикселей, линий и контуров фигур.setFillColor— Задает цвет заливки для нарисованных фигур и фона печатного текста.setOrigin— Устанавливает начало координат, используемое для экранных координат.setClipRegion— Ограничивает вывод на экран прямоугольной областью.drawPixel— Рисует один пиксель по заданной координате.drawLine— Рисует линию между двумя точками.drawRectangle— Рисует прямоугольник в точке x, y заданного размера.drawCircle— Рисует круг в точке x, y с заданным радиусом.drawImageFromFile— Рисует изображение из файла на SD-карте на экране.render— Включает двойную буферизацию или отображает буфер обратного хода на экране.pressing— Возвращает значение, указывающее, нажат ли экран в данный момент.xPosition— Возвращает x-координату последнего нажатия на экран.yPosition— Возвращает y-координату последнего нажатия на экран.pressed— Регистрирует функцию обратного вызова, которая будет выполняться при нажатии на экран.released— Регистрирует функцию обратного вызова, которая будет запущена при отпускании экрана после нажатия.
Before calling any screen member functions, a brain instance must be created, as shown below:
// 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всегда печатается с фоном, а цвет фона определяется текущим цветом заливки .При использовании строки формата количество и типы передаваемых значений должны соответствовать спецификаторам формата в строке.
// 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
setCursorвлияет только на положение последующего текстового вывода.
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

newLine#
Перемещает курсор в начало следующей строки на экране «Мозг».
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.
NotesThe cursor position is based on the current screen font.
Возвращаемое значение указывает, где будет отображаться следующий печатный результат.
Значение строки изменяется при выводе текста или при вызове
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.
NotesThe cursor position is based on the current screen font.
Возвращаемое значение указывает, где будет отображаться следующий печатный результат.
Значение столбца изменяется при выводе текста или при вызове
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.В печатном тексте используется текущий экранный шрифт размер шрифта.
В печатном тексте используется текущий цвет пера цвет пера.
При использовании строки формата количество и типы передаваемых значений должны соответствовать спецификаторам формата в строке.
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

clearScreen#
Удаляет все рисунки и текст с экрана «Мозг» и сбрасывает положение курсора в строку 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, 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); } }










