Екран#

Вступ#

Методи Screen контролюють, як V5 Brain відображає текст, числа та графіку на сенсорному екрані, а також як він реагує на сенсорне введення.

За замовчуванням шрифт для друку в Brain — моноширинний малий, який має 12 рядків і 48 стовпців.

Для малювання роздільна здатність Brain становить 480 x 240 пікселів.

Екран V5 Brain з червоними лініями сітки, що показують розташування з 12 рядків та 48 стовпців загалом. Розміри пікселів становлять 479 завширшки та 239 заввишки. Верхній лівий кут починається на (0,0) пікселів та рядку 1, стовпці 1, тоді як нижній правий кут закінчується на (479, 239) пікселях та рядку 12, стовпці 48.

Нижче наведено список усіх методів:

Друк курсора — Розміщення та друк тексту.

  • print — Друкує текст, числа або значення змінних у поточній позиції курсора.

  • set_cursor — Переміщує курсор до певного рядка та стовпця.

  • next_row — Переміщує курсор до стовпця 1 наступного рядка.

  • clear_row — Очищає рядок тексту.

  • row — Повертає рядок, у який буде надруковано текст.

  • column — Повертає стовпець, у якому буде надруковано текст.

  • print_at — Друкує текст, числа або значення змінних за певними координатами x та y.

  • get_string_width — Повертає ширину рядка в пікселях, використовуючи поточний шрифт.

  • get_string_height — Повертає висоту рядка в пікселях, використовуючи поточний шрифт.

  • clear_line — Очищає рядок тексту.

  • new_line — Переміщує курсор на новий рядок.

Мутатори — змінюють налаштування екрана, кольори та поведінку малювання.

  • clear_screen — Очищає екран від усіх малюнків і тексту.

  • set_font — Встановлює шрифт для друкованого тексту.

  • set_pen_width — Встановлює товщину намальованих ліній та контурів фігур.

  • set_pen_color — Встановлює колір тексту, пікселів, ліній та контурів фігур.

  • set_fill_color — Встановлює колір заливки для намальованих фігур та фону друкованого тексту.

  • set_origin — Встановлює початок координат, що використовується для друку та малювання на основі координат.

Малювання — додавання графіки на екран.

  • draw_pixel — Малює один піксель за заданою координатою.

  • draw_line — Малює лінію між двома точками.

  • draw_rectangle — Малює прямокутник.

  • draw_circle — Малює коло.

  • render — Оновлює екран Brain текстом та малюнками лише під час виклику.

  • set_clip_region — Обмежує, де можуть відображатися малюнки та текст.

Геттери — Перевірка стану та позиції дотику.

  • pressing — Повертає, чи натискається екран.

  • x_position — Повертає x-координату останнього натискання екрана.

  • y_position — Повертає y-координату останнього натискання екрана.

Зворотні виклики — реагують на події дотику до екрана.

  • pressed — Реєструє функцію, яка викликається при натисканні на екран.

  • released — Реєструє функцію, яка викликається при відпусканні екрана.

Щоб дізнатися більше про створення об’єкта Brain для отримання доступу до методів screen , див. Brain.

Курсор друку#

print#

print друкує текст, числа або значення змінних на екрані Brain у поточній позиції курсора та з поточним шрифтом.

Використання:

brain.screen.print(text, sep, precision)

Параметри

Опис

text

Текст, число або значення змінної, яке потрібно вивести.

sep

Необов’язково. Рядок для вставки між значеннями. Його потрібно записати як ключовий аргумент (sep=). Значення за замовчуванням — “”.

precision

Необов’язково. Кількість знаків після коми, які відображаються під час друку простих чисел. Це має бути записано як ключовий аргумент (precision=). Значення за замовчуванням — 2.

# Print on the Brain's screen
brain.screen.print("Hello, Robot!")

Знімок екрана V5 Brain, на якому у верхньому лівому куті екрана білим текстом написано "Hello Robot".

set_cursor#

set_cursor переміщує курсор до певного рядка та стовпця на екрані Brain. Наступний виклик print почне друк у цьому місці. Кількість рядків та стовпців, які можуть зручно поміститися, залежить від вибраного шрифту. Зі стандартним моноширинним середнім шрифтом можна чітко відображати до 8 рядків та 13 стовпців. Текст, розміщений за межами цього діапазону, може бути обрізаний або стати важким для читання.

Моноширинні шрифти мають символи однакової ширини, що забезпечує узгоджене розміщення тексту. Натомість, пропорційні шрифти відрізняються шириною символів, тому деякі літери займають більше місця, ніж інші. Однак, незалежно від того, який тип використовується, set_cursor позиціонує курсор на основі розміру рядка та стовпця, а не стилю шрифту. Розмір шрифту можна налаштувати за допомогою set_font.

Використання:

brain.screen.set_cursor(row, column)

Параметри

Опис

row

Рядок, до якого потрібно перемістити курсор.

column

Стовпець, до якого потрібно перемістити курсор.

# Display text starting at Row 3 Column 12
brain.screen.set_cursor(3, 12)
brain.screen.print("Row 3, Column 12")

Знімок екрана V5 Brain, на якому показано рядок 3, стовпець 12, надруковані у верхній частині, ближче до центру екрана, у цьому положенні.

next_row#

next_row переміщує курсор до наступного рядка.

Використання:

brain.screen.next_row()

Параметри

Опис

Цей метод не має параметрів.

# Print two lines of text on the Brain's screen
brain.screen.print("Line 1")
brain.screen.next_row()
brain.screen.print("Line 2")

Знімок екрана V5 Brain, на якому показано два рядки білого тексту у верхньому лівому куті. Верхній рядок – це рядок 1, а другий рядок безпосередньо під ним – рядок 2.

clear_row#

clear_row очищає один рядок тексту на екрані Brain.

Використання:

brain.screen.clear_row(row, color)

Параметри

Опис

row

Необов’язково. Рядок, який потрібно очистити. За замовчуванням використовується поточний рядок курсора.

color

Необов’язково. Дійсний color, шістнадцяткове значення або веб-рядок.

# Only keep the text on row 1
brain.screen.print("This text stays")
brain.screen.next_row
brain.screen.print("This text disappears")
wait(3, SECONDS)

brain.screen.clear_row()

row#

row повертає рядок, у якому текст буде надруковано як ціле число.

Використання:

brain.screen.row()

Параметри

Опис

Цей метод не має параметрів.

# Display the cursor's current row
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.row())

Знімок екрана V5 Brain, на якому показано текст 3 білим кольором у верхньому лівому квадранті екрана, у позиції рядка 3, стовпця 2.

column#

column повертає стовпець, у якому текст буде надруковано як ціле число.

Використання:

brain.screen.column()

Параметри

Опис

Цей метод не має параметрів.

# Display the cursor's current column
brain.screen.set_cursor(3, 15)
brain.screen.print(brain.screen.column())

Знімок екрана V5 Brain, на якому показано текст 15 білим кольором у верхньому лівому квадранті екрана, у позиції 15 рядка 3 стовпця.

get_string_width#

get_string_width повертає ширину рядка в пікселях як ціле число, використовуючи поточний font.

Usage:
brain.screen.get_string_width(string)

Параметри

Опис

string

Нитка для вимірювання.

get_string_height#

get_string_height повертає висоту рядка в пікселях як ціле число, використовуючи поточний font.

Usage:
brain.screen.get_string_height(string)

Параметри

Опис

string

Нитка для вимірювання.

clear_line#

clear_line очищає поточний рядок тексту.

Usage: brain.screen.clear_line()

Параметри

Опис

Цей метод не має параметрів.

new_line#

new_line переміщує курсор до колонки 1 наступного рядка на екрані Brain.

Використання:

brain.screen.new_line()

Параметри

Опис

Цей метод не має параметрів.

Мутатори#

clear_screen#

clear_screen очищає всі малюнки та текст з екрана Brain.

Використання:

brain.screen.clear_screen(color)

Параметри

Опис

color

Необов’язково. Дійсний варіант кольору:

  • Color.RED
  • Color.GREEN
  • Color.BLUE
  • Color.YELLOW
  • Color.ORANGE
  • Color.PURPLE
  • Color.CYAN
  • Color.BLACK (За замовчуванням)
  • Color.WHITE

# Print VEXcode on the screen
brain.screen.print("VEXcode")
wait(2, SECONDS)
# Clear screen to black
brain.screen.clear_screen()

# Print VEXcode on the screen
brain.screen.print("VEXcode")

# Clear screen to blue using predefined color
brain.screen.clear_screen(Color.BLUE)

Знімок екрана V5 Brain, на якому вся область друку виділена яскраво-синім кольором.

set_font#

set_font встановлює шрифт, який використовується для відображення тексту на екрані Brain. Цей шрифт застосовуватиметься до всього тексту, що друкується після виконання цього методу.

Використання:

brain.screen.set_font(font)

Параметри

Опис

font

Нижче наведено дійсний варіант шрифту.

Знімок екрана V5 Brain з цифрами та літерами, надрукованими білим кольором у верхньому лівому куті шрифтом MONO 12. На ньому зображено AZ в одному рядку, приблизно на чверть ширини екрана. У нижньому лівому куті читається 80 стовпців і 20 рядків.
FontType.MONO12

Те саме зображення, що й попереднє, шрифтом Mono 15. На ньому показано AZ в одному рядку, майже на половині ширини екрана. У лівому нижньому куті читається 68 стовпців і 16 рядків.
FontType.MONO15

Те саме зображення, що й попереднє, шрифтом Mono 20. На ньому показано AZ в одному рядку, майже через дві третини ширини екрана. У лівому нижньому куті читається 48 стовпців і 12 рядків.
FontType.MONO20

Те саме зображення, що й попереднє, шрифтом Mono 30. На ньому показано AZ в одному рядку, майже по всій ширині екрана. У лівому нижньому куті читається 32 стовпці та 8 рядків.
FontType.MONO30

Те саме зображення, що й попереднє, шрифтом Mono 40. На ньому показано AX в одному рядку, що охоплює всю ширину екрана. У лівому нижньому куті читається 24 стовпці та 6 рядків.
FontType.MONO40

Те саме зображення, що й попереднє, шрифтом Mono 60. AP показано в одному рядку, по всій ширині екрана. Внизу читається 16 стовпців і 4 рядки.
FontType.MONO60

Те саме зображення, що й попереднє, шрифтом Prop 20. На ньому показано AZ в одному рядку, майже через дві третини ширини екрана. У лівому нижньому куті читається 48 стовпців і 12 рядків.
FontType.PROP20

Те саме зображення, що й попереднє, шрифтом Prop 30. На ньому зображено AZ в одному рядку, майже по всій ширині екрана. У лівому нижньому куті читається 32 стовпці та 8 рядків.
FontType.PROP30

Те саме зображення, що й попереднє, шрифтом Prop 40. На ньому AU показано в одному рядку, по всій ширині екрана. У лівому нижньому куті відображається 24 стовпці та 6 рядків.
FontType.PROP40

Те саме зображення, що й попереднє, зі шрифтом Prop 60. На ньому показано AN в одному рядку, що охоплює всю ширину екрана. Внизу читається 15 стовпців і 4 рядки.
FontType.PROP60

# Set the font type to MONO40
brain.screen.set_font(FontType.MONO40)
brain.screen.print("VEX")

Знімок екрана V5 Brain показує напис VEX білим кольором у верхньому лівому куті, більшим шрифтом, ніж за замовчуванням.

set_pen_width#

set_pen_width встановлює товщину намальованих ліній та контурів фігур.

Використання:

brain.screen.set_pen_width(value)

Параметри

Опис

value

Ширина пера, у пікселях, від 0 до 32.

# Draw a rectangle with a pen width of 10
brain.screen.set_pen_width(10)
brain.screen.draw_rectangle(50, 50, 130, 60)

Знімок екрана V5 Brain, на якому видно прямокутник із товстими рамками, надрукований у верхньому лівому квадранті екрана.

set_pen_color#

set_pen_color встановлює колір тексту, пікселів, ліній та контурів фігур.

Використання:

brain.screen.set_pen_color(color)

Параметри

Опис

color

Колір пера та шрифту, який слід використовувати. Варіанти включають:

  • Color.RED
  • Color.GREEN
  • Color.BLUE
  • Color.YELLOW
  • Color.ORANGE
  • Color.PURPLE
  • Color.CYAN
  • Color.TRANSPARENT
  • Color.WHITE
Ви також можете вказати власний колір.

# Draw a rectangle with orange borders
brain.screen.set_pen_color(Color.ORANGE)
brain.screen.draw_rectangle(50, 50, 130, 60)

Знімок екрана V5 Brain, на якому видно прямокутник, намальований помаранчевим кольором у верхньому лівому квадранті екрана.

set_fill_color#

set_fill_color встановлює колір заливки, який використовується під час малювання фігур.

Використання:

brain.screen.set_fill_color(color)

Параметри

Опис

color

Колір заливки, який слід використовувати. Варіанти:

  • Color.RED
  • Color.GREEN
  • Color.BLUE
  • Color.YELLOW
  • Color.ORANGE
  • Color.PURPLE
  • Color.CYAN
  • Color.TRANSPARENT
  • Color.WHITE
Ви також можете вказати власний колір.

# Draw a purple rectangle
brain.screen.set_fill_color(Color.PURPLE)
brain.screen.draw_rectangle(50, 130, 100, 60)

Знімок екрана V5 Brain, на якому показано прямокутник, заповнений фіолетовим кольором, у лівому нижньому квадранті екрана.

set_origin#

set_origin встановлює початок координат, який використовується для малювання та друку на основі координат на екрані Brain. За замовчуванням початком координат є верхній лівий кут екрана.

Використання:

brain.screen.set_origin(x, y)

Параметри

Опис

x

Координата x, яку потрібно встановити як початок координат, від 0 до 479.

y

Координата Y, яку потрібно встановити як початок координат, від 0 до 239.

Нічия#

draw_pixel#

draw_pixel малює один піксель у вибраних координатах x та y, використовуючи поточний колір пера.

Використання:

brain.screen.draw_pixel(x, y)

Параметри

Опис

x

Координата x для малювання пікселя, від 0 до 479, відносно початку координат екрана.

y

Координата Y для малювання пікселя, від 0 до 239, відносно початку координат екрана.

# Draw the pixels marking the corners of a square
brain.screen.draw_pixel(250, 100)
brain.screen.draw_pixel(275, 100)
brain.screen.draw_pixel(250, 125)
brain.screen.draw_pixel(275, 125)

Знімок екрана V5 Brain, на якому показано набір пікселів, що відображають кути квадрата поблизу центру екрана.

draw_line#

draw_line малює лінію від першої координати екрана до другої координати екрана, використовуючи поточну ширину та колір пера.

Використання:

brain.screen.draw_line(start_x, start_y, end_x, end_y)

Параметри

Опис

start_x

Координата x у пікселях початку лінії, від 0 до 479, відносно початку координат на екрані.

start_y

Y-координата в пікселях початку лінії, від 0 до 239, відносно початку координат на екрані.

end_x

Координата x кінця рядка в пікселях, від 0 до 479, відносно початку координат на екрані.

end_y

Y-координата кінця рядка в пікселях, від 0 до 239, відносно початку координат на екрані.

# Draw a line from the top left to bottom right of the screen
brain.screen.draw_line(0, 0, 479, 239)

Знімок екрана V5 Brain показує тонку діагональну лінію по центру, від верхнього лівого кута до нижнього правого кута.

draw_rectangle#

draw_rectangle малює прямокутник, використовуючи поточну ширину пера, колір пера та колір заливки, якщо не використовується необов’язковий параметр color.

Використання:

brain.screen.draw_rectangle(x, y, width, height, color)

Параметри

Опис

x

Координата x верхнього лівого кута прямокутника в пікселях від 0 до 479.

y

Y-координата в пікселях верхнього лівого кута прямокутника від 0 до 239.

width

Ширина прямокутника.

height

Висота прямокутника.

color

Необов’язково. Дійсний варіант кольору:

  • Color.RED
  • Color.GREEN
  • Color.BLUE
  • Color.YELLOW
  • Color.ORANGE
  • Color.PURPLE
  • Color.CYAN
  • Color.TRANSPARENT
  • Color.WHITE
Ви також можете вказати власний колір.

# Draw a rectangle on the screen
brain.screen.draw_rectangle(50, 50, 130, 60)

Знімок екрана V5 Brain показує прямокутник з тонкою білою рамкою, надрукованою у верхньому лівому квадранті.

draw_circle#

draw_circle малює коло, використовуючи поточну ширину пера, колір пера та колір заливки, якщо не використовується необов’язковий параметр color.

Використання:

brain.screen.draw_circle(x, y, radius, color)

Параметри

Опис

x

Координата x центру кола в пікселях, від 0 до 479, відносно початку координат на екрані.

y

Y-координата в пікселях центру кола, від 0 до 239, відносно початку координат на екрані.

radius

Радіус кола, у пікселях.

color

Необов’язково. Колір заливки, який слід використовувати. Варіанти:

  • Color.RED
  • Color.GREEN
  • Color.BLUE
  • Color.YELLOW
  • Color.ORANGE
  • Color.PURPLE
  • Color.CYAN
  • Color.TRANSPARENT
  • Color.WHITE
Ви також можете вказати власний колір.

# Draw a circle on the screen
brain.screen.draw_circle(120, 120, 40)

Знімок екрана V5 Brain показує коло з тонкою білою рамкою в центрі.

render#

render активує подвійну буферизацію для екрана Brain. Після виклику будь-які команди малювання (наприклад, текст, фігури чи зображення) більше не відображатимуться негайно до кінця проєкту. Натомість оновлення відображатимуться лише тоді, коли знову буде використано render Це забезпечує плавніші та контрольованіші оновлення екрана, але означає, що нічого не буде видно, доки не буде використано render.

Використання:

brain.screen.render()

Параметри

Опис

Цей метод не має параметрів.

# Render text after moving
brain.screen.render()
brain.screen.print("Render later...")
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.render()

set_clip_region#

set_clip_region визначає прямокутну область на екрані, де будуть обмежені всі малюнки та текст. Будь-який контент за межами цієї області не відображатиметься.

Використання:

brain.screen.set_clip_region(x, y, width, height)

Параметри

Опис

x

Позиція верхнього лівого кута прямокутника за осю x відносно початку координат на екрані.

y

Позиція верхнього лівого кута прямокутника по осі Y відносно початку координат на екрані.

width

Ширина прямокутника.

height

Висота прямокутника.

# Restrict text and drawings to a specific region
brain.screen.set_clip_region(0, 0, 120, 120)
brain.screen.draw_rectangle(60, 60, 100, 100, Color.RED)
brain.screen.print_at("Cut off!", x=60, y=60)

Знімок екрана V5 Brain з білим текстом «Вирізано» та суцільним червоним квадратом безпосередньо під ним у верхньому лівому квадранті екрана, що показує, що друкується в області вирізання.

Дотик#

pressing#

pressing повертає логічне значення, яке вказує, чи натискається екран Brain у даний момент.

  • True - На екран натискають.

  • False - Екран не натискається.

Використання:

brain.screen.pressing()

Параметри

Опис

Цей метод не має параметрів.

# Change the screen's color after it's pressed
while not brain.screen.pressing():
    wait(5, MSEC)
brain.screen.set_fill_color(Color.GREEN)
brain.screen.draw_rectangle(0, 0, 479, 239)

# Display different messages after the screen is pressed
while not brain.screen.pressing():
    wait(5, MSEC)
brain.screen.print("First message!")
brain.screen.next_row()
# Lift finger to press the screen again
while brain.screen.pressing():
    wait(5, MSEC)
while not brain.screen.pressing():
    wait(5, MSEC)
brain.screen.print("Second message!")
brain.screen.next_row()

x_position#

x_position повертає x-координату останнього натискання на екран як ціле число від 0 (ліворуч) до 479 (праворуч).

Використання:

brain.screen.x_position()

Параметри

Опис

Цей метод не має параметрів.

# Display a circle where the screen is pressed
while not brain.screen.pressing():
    wait(5, MSEC)
brain.screen.set_fill_color(Color.WHITE)
brain.screen.draw_circle(brain.screen.x_position(), brain.screen.y_position(), 20)

y_position#

y_position повертає y-координату останнього натискання на екран як ціле число від 0 (зверху) до 239 (знизу).

Використання:

brain.screen.y_position()

Параметри

Опис

Цей метод не має параметрів.

# Display a circle where the screen is pressed
while not brain.screen.pressing():
    wait(5, MSEC)
brain.screen.set_fill_color(Color.WHITE)
brain.screen.draw_circle(brain.screen.x_position(), brain.screen.y_position(), 20)

Зворотні виклики#

pressed#

pressed реєструє функцію, яка буде викликана при натисканні на екран мозку.

Використання:

brain.screen.pressed(callback, arg)

Параметри

Опис

callback

Раніше визначена функція, яка виконується при натисканні екрана Brain.

arg

Необов’язково. Кортеж tuple, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації.

def my_function():
  brain.screen.print("Screen pressed")

# Call my_function whenever the Brain screen is pressed
brain.screen.pressed(my_function)

released#

released реєструє функцію, яка викликається, коли екран відпускається (дотик знято).

Використання:

brain.screen.released(callback, arg)

Параметри

Опис

callback

Раніше визначена функція, яка виконується, коли екран Brain відпускається.

arg

Необов’язково. Кортеж tuple, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації.

def my_function():
  brain.screen.print("Screen released")

# Call my_function whenever the Brain screen is released
brain.screen.released(my_function)