Екран#

Вступ#

Методи Screen контролюють, як робот-кодувальник VEX AIM відображає текст, числа та графіку на екрані, а також як він реагує на натискання клавіш на екрані.

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

Сенсорний екран – Виявлення та реагування на натискання.

  • pressing – Повертає, чи натискається екран у даний момент.

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

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

Друк курсора – відображення тексту за допомогою системи рядків/стовпців.

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

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

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

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

  • get_row – Повертає поточний рядок курсора.

  • get_column – Повертає поточний стовпець курсора.

Друк XY – Відображення тексту за певною координатою екрана.

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

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

Мутатори – Очистіть екран або оновіть візуальні налаштування.

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

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

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

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

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

Малювання – додавання графіки та зображень на екран.

  • draw_pixel – Малює піксель у певній позиції x та y.

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

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

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

  • show_file – Відображає завантажене зображення.

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

Зворотні виклики – Запускають функції, коли екран натискається або відпускається.

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

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

Дотик#

pressing#

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

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

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

Usage:
robot.screen.pressing()

Параметри

Опис

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

# Turn LEDs white only while the screen is pressed.
while True:
    if robot.screen.pressing():
        robot.led.on(ALL_LEDS, WHITE)
    else:
        robot.led.off(ALL_LEDS)

    wait(50, MSEC)

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

x_position#

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

Usage:
robot.screen.x_position()

Параметри

Опис

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

# Display the x-coordinate of where
# the screen is pressed
while True:
    if robot.screen.pressing():
        robot.screen.clear_screen()
        robot.screen.print(robot.screen.x_position())
    wait (50, MSEC)

y_position#

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

Usage:
robot.screen.y_position()

Параметри

Опис

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

# Display the y-coordinate of where
# the screen is pressed
while True:
    if robot.screen.pressing():
        robot.screen.clear_screen()
        robot.screen.print(robot.screen.y_position())
    wait (50, MSEC)

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

print#

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

Usage:
robot.screen.print(text)

Параметри

Опис

text

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

# Display a message at the starting cursor position
robot.screen.print("Hello, Robot!")

Знімок екрана робота з написом "Привіт, роботе!" зверху білим кольором.

set_cursor#

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

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

Usage:
robot.screen.set_cursor(row, column)

Параметри

Опис

row

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

column

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

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

Знімок екрана робота, на якому трохи вище центру екрана білим кольором написано «Рядок 3, колонка 2», починаючи з рядка 3 колонки 2.

next_row#

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

Usage:
robot.screen.next_row()

Параметри

Опис

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

# Display two lines of text
robot.screen.print("Line 1")
robot.screen.next_row()
robot.screen.print("Line 2")

Знімок екрана робота з білим текстом. На екрані видно рядок 1 у верхньому рядку з вирівнюванням по лівому краю та рядок 2 безпосередньо під ним.

clear_row#

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

Usage:
robot.screen.clear_row(row, color)

Параметр

Опис

row

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

color

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

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

# Display text on two rows
robot.screen.print("This text stays")
robot.screen.next_row()
robot.screen.print("This text disappears")

# Wait 3 seconds before clearing only the second row
wait(3, SECONDS)
robot.screen.clear_row()

# Turn the 5th row green
robot.screen.clear_row(5, GREEN)

Знімок екрана робота із зеленою смугою по центру екрана зліва направо.

get_row#

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

Usage:
robot.screen.get_row()

Параметри

Опис

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

# Set cursor to (3,2) and print row number
robot.screen.set_cursor(3, 2)
robot.screen.print(robot.screen.get_row())

Знімок екрана робота SA, з білою цифрою 3, надрукованою біля центру верхнього лівого квадранта, у рядку 3, стовпці 2.

get_column#

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

Usage:
robot.screen.get_column()

Параметри

Опис

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

# Set cursor to (3,2) and print column number
robot.screen.set_cursor(3, 2)
robot.screen.print(robot.screen.get_column())

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

Друк XY#

set_origin#

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

Usage:
robot.screen.set_origin(x, y)

Параметр

Опис

x

Нова координата x, яку потрібно встановити як початок координат, задана як ціле число від 0 до 240.

y

Нова координата y, яку потрібно встановити як початок координат, задана як ціле число від 0 до 240.

# Set the origin to the center of the screen
robot.screen.set_origin(120, 120)

# Draw a rectangle at the new origin
robot.screen.draw_rectangle(0, 0, 80, 40)

Знімок екрана робота з білим прямокутником, намальованим у лівому нижньому квадранті. Лівий верхній кут прямокутника — це центр екрана.

Мутатори#

clear_screen#

clear_screen очищає всі малюнки та текст з екрана робота. За замовчуванням також скидає позицію курсора до рядка 1, стовпця 1.

Usage:
robot.screen.clear_screen(color)

Параметр

Опис

color

Необов’язково. Встановлює колір екрана. Варіанти включають:

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

# Draw a circle, and clear it after 2 seconds
robot.screen.draw_circle(120, 120, 60)
wait(2, SECONDS)
robot.screen.clear_screen()

# Set the background color of the screen to red
robot.screen.clear_screen(RED)

Знімок екрана робота, на якому весь екран яскраво-червоний.

set_font#

set_font встановлює шрифт, який використовується для відображення тексту на екрані робота. Цей шрифт застосовуватиметься до всього тексту, надрукованого за допомогою print або print_at. Шрифт за замовчуванням на початку проєкту — MONO24.

Usage:
robot.screen.set_font(fontname)

Параметр

Опис

fontname

Sets the font to one of the following:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
These options are shown below.

Знімок екрана робота, на якому показано вибірку цифр і літер, надрукованих шрифтом Mono 12. Алфавіт займає 1 рядок тексту. Нижня частина має 26 символів завширшки та 15 рядків.
MONO12

Те саме зображення, що й попереднє, зі шрифтом Mono 15. Літери AT займають 1 рядок тексту. Нижня частина має 20 символів завширшки та 12 рядків.
MONO15

Те саме зображення, що й попереднє, шрифтом Mono 20. Літери AP займають 1 рядок тексту. Нижня частина має 16 символів завширшки та 9 рядків.
MONO20

Те саме зображення, що й попереднє, шрифтом Mono 24. Літери AM займають 1 рядок тексту. Нижня частина має 13 символів завширшки та 8 рядків.
MONO24

Те саме зображення, що й попереднє, шрифтом Mono 30. Літери AK займають 1 рядок тексту. Нижня частина має 11 символів завширшки та 6 рядків.
MONO30

Те саме зображення, що й попереднє, шрифтом Mono 40. Літери AH займають 1 рядок тексту. Нижній рядок має 8 символів завширшки та 5 рядків.
MONO40

Те саме зображення, що й попереднє, з цифрами, надрукованими шрифтом Mono 60. Числа 1-6 займають 1 рядок тексту. Нижня частина займає 3 рядки.
MONO60

Те саме зображення, що й попереднє, шрифтом Prop 20. Літери As займають 1 рядок тексту. Нижній рядок має 20 символів завширшки та 9 рядків.
PROP20

Те саме зображення, що й попереднє, шрифтом Prop 30. Літери AM займають 1 рядок тексту. Нижній рядок має 15 символів завширшки та 6 рядків.
PROP30

Те саме зображення, що й попереднє, шрифтом Prop 40. Літери AJ займають 1 рядок тексту. Нижній рядок має 11 символів завширшки та 5 рядків.
PROP40

Те саме зображення, що й попереднє, з цифрами, надрукованими шрифтом Prop 60. Числа 1-7 займають 1 рядок тексту. Внизу написано 7 на 3.
PROP60

# Display text using a larger font
robot.screen.set_font(MONO40)
robot.screen.print("VEX")

Знімок екрана робота з написом VEX шрифтом Mono 40 у верхньому лівому куті.

set_pen_width#

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

Usage:
robot.screen.set_pen_width(width)

Параметр

Опис

width

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

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

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

set_pen_color#

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

Usage:
robot.screen.set_pen_color(color)

Параметр

Опис

color

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

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

# Draw a rectangle with a red pen
robot.screen.set_pen_color(RED)
robot.screen.draw_rectangle(50, 50, 130, 60)

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

set_fill_color#

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

Usage:
robot.screen.set_fill_color(color)

Параметр

Опис

color

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

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

# Draw two orange rectangles
robot.screen.set_fill_color(ORANGE)
robot.screen.draw_rectangle(50, 50, 100, 60)
robot.screen.draw_rectangle(50, 130, 100, 60)

Знімок екрана робота з двома паралельними помаранчевими прямокутниками з тонкими білими контурами, розташованими ліворуч по центру екрана.

# Display text with a purple background
robot.screen.set_fill_color(PURPLE)
robot.screen.print("Highlight")

Знімок екрана робота показує напис «Виділити» білим текстом з фіолетовою підсвіткою навколо нього, починаючи з верхнього лівого кута.

Нічия#

draw_pixel#

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

Usage:
robot.screen.draw_pixel(x, y)

Параметр

Опис

x

Координата x, де буде намальовано піксель, задана як ціле число від 0 до 240.

y

Координата Y, де буде намальовано піксель, задана як ціле число від 0 до 240.

# Draw a pixel at the center of the screen
robot.screen.draw_pixel(120, 120)

Знімок екрана робота з одним білим пікселем у центрі.

draw_line#

draw_line малює лінію від першої екранної координати (x1, y1) до другої екранної координати (x2, y2) використовуючи поточні значення ширина пера та колір пера.

Координати x та y використовують початковий пункт за замовчуванням (0, 0), якщо не було встановлено інший початковий пункт за допомогою set_origin.

Usage:
robot.screen.draw_line(x1, y1, x2, y2)

Параметр

Опис

x1

Початкова x-координата лінії, задана як ціле число від 0 до 240.

y1

Початкова координата y лінії, задана як ціле число від 0 до 240.

x2

Кінцева x-координата лінії, задана як ціле число від 0 до 240.

y2

Кінцева координата Y лінії, задана як ціле число від 0 до 240.

# Draw a line from the top left to bottom right of the screen
robot.screen.draw_line(0, 0, 240, 240)

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

draw_rectangle#

draw_rectangle малює прямокутник з верхнім лівим кутом у вибраній координаті (x, y) та розміром, що визначається заданою шириною та висотою, усі виміряні в пікселях. Контур прямокутника малюється з використанням поточних параметрів ширина пера та колір пера. Внутрішня частина заповнюється поточним кольором заливка, якщо не використовується необов’язковий параметр color.

Координати x та y використовують початковий пункт за замовчуванням (0, 0), якщо не було встановлено інший початковий пункт за допомогою set_origin.

Usage:
robot.screen.draw_rectangle(x, y, width, height, color)

Параметр

Опис

x

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

y

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

width

Ширина прямокутника, задана як ціле число від 0 до 240.

height

Висота прямокутника, задана як ціле число від 0 до 240.

color

Необов’язково. Колір заливки прямокутника. Варіанти:

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

# Draw a red rectangle on the screen
robot.screen.draw_rectangle(50, 50, 130, 60, RED)

Знімок екрана робота з яскраво-червоним прямокутником з тонкою білою рамкою, розташованою по центру верхньої половини екрана.

draw_circle#

draw_circle draws a circle with its center at the selected (x, y) coordinate and a size determined by the given radius, all measured in pixels. The circle’s outline is drawn using the current pen width and pen color. The interior is filled with the current fill color, unless the optional color parameter is used.

Координати x та y використовують початковий пункт за замовчуванням (0, 0), якщо не було встановлено інший початковий пункт за допомогою set_origin.

Usage:
robot.screen.draw_circle(x, y, radius, color)

Параметр

Опис

x

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

y

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

radius

Радіус кола, заданий як ціле число від 0 до 240 пікселів.

color

Optional. The fill color of the circle. Options include:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
You can also specify a custom color.

# Draw a green circle on the screen
robot.screen.draw_circle(120, 120, 40, GREEN)

Знімок екрана робота з яскраво-зеленим колом з тонкою білою рамкою по центру.

show_file#

show_file відображає на екрані робота завантажене користувачем зображення, положення якого встановлюється за допомогою параметрів x, yта center на основі опорної точки зображення.

Usage:
robot.screen.show_file(file, x, y, center)

Параметр

Опис

file

Власне зображення для використання, від IMAGE1 до IMAGE10Номер зображення відповідає номеру, що відображається на панелі керування AIM.

x

Горизонтальне зміщення зображення, задане як ціле число в пікселях. Додатні значення зміщують його праворуч; від’ємні значення зміщують його ліворуч.

y

Вертикальне зміщення зображення, задане як ціле число в пікселях. Додатні значення зміщують його вниз; від’ємні значення – вгору.

center

Необов’язково. Якщо center=True, зображення розміщується з використанням його центру за координатою (120, 120). За замовчуванням (center=False) використовується верхній лівий кут зображення та розташовується відносно поточного початку координат.

# Display uploaded Image 1 in the top left corner
robot.screen.show_file(IMAGE1, 0, 0)

# Show the same image on both sides of the screen
# Image size is 120 x 120
robot.screen.show_file(IMAGE1, 65, 0, center=True)
robot.screen.show_file(IMAGE1, -65, 0, center=True)

set_clip_region#

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

Usage:
robot.screen.set_clip_region(x, y, width, height)

Параметр

Опис

x

Координата x верхнього лівого кута області кліпу, задана як десяткове число (float) від 0 до 240.

y

Y-координата верхнього лівого кута області кліпу, задана як десяткове число (float) від 0 до 240.

width

Ширина області кліпу в пікселях, задана як десяткове число (float) від 0 до 240.

height

Висота області кліпу в пікселях, задана як десяткове число (float) від 0 до 240.

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

Знімок екрана робота, на якому показано текст і зображення, що поміщаються в область кліпування. У верхньому лівому квадранті білий текст говорить «Вирізати o», а червоний квадрат знаходиться безпосередньо під ним.

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

pressed#

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

Usage:
robot.screen.pressed(callback, arg)

Параметри

Опис

callback

Функція function, яку попередньо визначено для виконання при натисканні екрана контролера.

arg

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

# Set the LEDs to green when the screen is pressed.
def screen_touched():
    robot.led.on(ALL_LEDS, GREEN)

robot.screen.pressed(screen_touched)

released#

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

Usage:
robot.screen.released(callback, arg)

Параметри

Опис

callback

Функція function, яку попередньо визначено для виконання при натисканні екрана контролера.

arg

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

# Set the LEDs to blue when the screen is released.
def screen_released():
    robot.led.on(ALL_LEDS, BLUE)

robot.screen.released(screen_released)