Экран#

Введение#

Методы управления экраном определяют, как робот-программист VEX AIM отображает текст, цифры и графику на своем экране, а также как он реагирует на нажатия на экран.

Ниже приведён список всех методов:

Сенсорное управление – распознавание и реагирование на нажатия на экране.

  • pressing – Возвращает значение, указывающее, нажат ли экран в данный момент.

  • x_position – Возвращает x-координату последнего нажатия на экран.

  • y_position – Возвращает y-координату последнего нажатия на экран.

Cursor Print – отображение текста с использованием построчной/столбцовой системы.

  • print – Выводит текст, числа или значения переменных в текущей позиции курсора.

  • set_cursor – Перемещает курсор в определенную строку и столбец.

  • next_row – Перемещает курсор в столбец 1 следующей строки.

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

  • get_row – Возвращает текущую строку курсора.

  • get_column – Возвращает текущий столбец курсора.

XY Print – Отображение текста в заданных координатах на экране.

  • 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 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())

Скриншот экрана робота, на котором в центре верхнего левого квадранта, в строке 3 и столбце 2, напечатана белая цифра 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

Устанавливает шрифт на один из следующих вариантов:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Эти параметры показаны ниже.

Скриншот экрана робота, показывающий примеры цифр и букв, напечатанных шрифтом 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 занимают один ряд текста. Внизу надпись 7 на 3.
PROP60

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

На скриншоте экрана робота в верхнем левом углу шрифтом Mono 40 написано VEX.

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

Optional. The pen and font color to use. Options include:

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

# 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 рисует круг с центром в выбранной (x, y) координате и размером, определяемым заданным радиусом, все измеряется в пикселях. Контур круга рисуется с использованием текущих ширины пера и цвета пера. Внутренняя часть заполняется текущим цветом заливки, если не используется необязательный color.

Координаты 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

Необязательно. Цвет заливки круга. Варианты:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Вы также можете указать пользовательский цвет.

# 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 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)

Скриншот экрана робота, показывающий текст и изображение, которые помещаются в область клипа. В верхнем левом квадранте белым текстом написано Cut o, а прямо под ним — красный квадрат.

Обратные звонки#

pressed#

pressed регистрирует метод, который будет вызываться при нажатии на экран робота.

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

Параметры

Описание

callback

A function that is previously defined to execute when the controller screen is pressed.

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

# 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

A function that is previously defined to execute when the controller screen is pressed.

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

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

robot.screen.released(screen_released)