屏幕#
介绍#
VEX AIM 编码机器人的屏幕提供了显示文本、管理光标、绘制形状以及处理触摸交互的方法。以下是所有可用方法的列表:
光标打印——使用行/列系统显示文本。
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 - 限制绘图和文本出现的位置。
触摸——检测并响应屏幕按压。
x_position – 返回按下屏幕的 x 坐标。
y_position – 返回按下屏幕的 y 坐标。
pressing – 返回屏幕当前是否被按下。
回调——当按下或释放屏幕时运行函数。
光标打印#
print#
print
在机器人屏幕上的当前 光标位置 和 字体 显示文本。
用法:robot.screen.print(text)
参数 |
描述 |
---|---|
|
要在屏幕上显示的文本、数字或变量值。 |
# Display a message at the starting cursor position
robot.screen.print("Hello, Robot!")
set_cursor#
set_cursor
将文本光标置于屏幕上的特定行和列。可容纳的行数和列数取决于所选字体。使用默认的等宽中等字体,屏幕最多可以清晰显示 8 行 13 列。超出此范围的文本可能会被截断或难以阅读。
等宽字体的字符宽度相同,使文本位置保持一致。相比之下,比例字体的字符宽度各不相同,因此某些字母比其他字母占用更多空间。但是,无论使用哪种类型,set_cursor
都会根据行和列的大小(而不是字体样式)来定位光标。可以使用 set_font 调整字体大小。
用法:robot.screen.set_cursor(row, column)
参数 |
描述 |
---|---|
|
游标所在行。 |
|
光标所在的列。 |
# Display text starting at Row 3 Column 2
robot.screen.set_cursor(3, 2)
robot.screen.print("Row 3, Column 2")
next_row#
next_row
将光标移动到机器人屏幕下一行的第 1 列。
用法:robot.screen.next_row()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Display two lines of text
robot.screen.print("Line 1")
robot.screen.next_row()
robot.screen.print("Line 2")
clear_row#
clear_row
清除机器人屏幕上的一行文本。
用法:robot.screen.clear_row(row, color)
范围 |
描述 |
---|---|
|
可选。要清除的行。默认值为当前光标所在行。 |
|
可选。应用于已清除行的颜色。选项包括:
|
# 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
returns the current row where text will be printed as an integer.
用法: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())
get_column#
column
返回当前列,其中文本将以整数形式打印。
用法: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())
XY打印#
print_at#
print_at
块在机器人屏幕上指定的 x 和 y 坐标(以像素为单位)处使用当前设置的 font 显示文本。此方法忽略当前光标位置。
用法:
robot.screen.print_at(text, x, y)
范围 |
描述 |
---|---|
|
要在屏幕上显示的文本、数字或变量值。 |
|
文本的水平位置,以 0 到 240 像素之间的整数表示。0 为左;240 为右。 |
|
文本的垂直位置,以 0 到 240 像素之间的整数表示。0 表示顶部;240 表示底部。 |
# Display a message in the middle of the screen
robot.screen.print_at("Hello, Robot!", x=40, y=120)
set_origin#
set_origin
设置机器人屏幕上用于绘图或打印的原点 (0,0)。默认情况下,绘图或打印方法将屏幕左上角视为原点。此方法可以将原点重置为另一个 (x, y) 屏幕坐标位置。
用法:
robot.screen.set_origin(x, y)
范围 |
描述 |
---|---|
|
设置为原点的新 x 坐标,以 0 至 240 之间的整数形式给出。 |
|
设置作为原点的新 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 列。
用法:
robot.screen.clear_screen(row, column, color)
范围 |
描述 |
---|---|
|
可选。清除后光标移动到的行号。默认为 1。 |
|
可选。清除后光标移动到的列号。默认值为 1。 |
|
可选。设置屏幕颜色。选项包括:
|
# 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
。
用法:
robot.screen.set_font(fontname)
范围 |
描述 |
---|---|
|
将字体设置为下列之一:
|
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
# Display text using a larger font
robot.screen.set_font(MONO40)
robot.screen.print("VEX")
set_pen_width#
set_pen_width
设置用于绘制线条和形状的笔宽。
用法:
robot.screen.set_pen_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
设置用于绘制线条、形状和文本的画笔颜色。
范围 |
描述 |
---|---|
|
可选。设置画笔颜色。选项包括:
|
用法:
robot.screen.set_pen_color(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
方法设置绘制形状时使用的填充颜色。
范围 |
描述 |
---|---|
|
可选。设置填充颜色。选项包括:
|
用法:robot.screen.set_fill_color(color)
# 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) 屏幕坐标处绘制一个像素。它使用由 set_pen_color
设置的当前画笔颜色。
用法:
robot.screen.draw_pixel(x, y)
范围 |
描述 |
---|---|
|
将绘制像素的 x 坐标,以 0 至 240 之间的整数表示。 |
|
将绘制像素的 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)
绘制一条线。它使用当前由 set_pen_width 设置的画笔宽度和由 set_pen_color 设置的画笔颜色。
x 和 y 坐标使用默认原点 (0, 0),除非使用 set_origin
设置了不同的原点。
用法:
robot.screen.draw_line(x1,y1,x2,y2)
范围 |
描述 |
---|---|
|
线的起始 x 坐标,以 0 至 240 之间的整数表示。 |
|
线的起始 y 坐标,以 0 至 240 之间的整数表示。 |
|
线的结束 x 坐标,以 0 至 240 之间的整数表示。 |
|
线的结束 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)
坐标,其大小由给定的宽度和高度决定,所有值均以像素为单位。矩形的轮廓使用由 set_pen_width
设置的当前画笔宽度和由 set_pen_color
设置的画笔颜色绘制。矩形内部填充由 set_fill_color
设置的颜色。
x 和 y 坐标使用默认原点 (0,0),除非使用 set_origin 设置了不同的原点。
用法:robot.screen.draw_rectangle(x, y, width, height, color)
范围 |
描述 |
---|---|
|
矩形左上角的 x 坐标,以 0 至 240 之间的整数表示。 |
|
矩形左上角的 y 坐标,以 0 至 240 之间的整数表示。 |
|
矩形的宽度,以 0 到 240 之间的整数表示。 |
|
矩形的高度,以 0 到 240 之间的整数表示。 |
|
可选。矩形的填充颜色。选项包括:
|
# Draw a red rectangle on the screen
robot.screen.draw_rectangle(50, 50, 130, 60, RED)
draw_circle#
draw_circle
绘制一个圆,其圆心位于指定的 (x, y)
坐标,大小由给定的半径决定,所有尺寸均以像素为单位。圆的轮廓使用由 set_pen_width
设置的当前画笔宽度和由 set_pen_color
设置的画笔颜色绘制。圆的内部填充由 set_fill_color
设置的颜色。
x 和 y 坐标使用默认原点 (0,0),除非使用 set_origin 设置了不同的原点。
用法:robot.screen.draw_circle(x, y, radius, color)
范围 |
描述 |
---|---|
|
圆心的 x 坐标,以 0 至 240 之间的整数表示。 |
|
圆心的 y 坐标,以 0 至 240 之间的整数表示。 |
|
圆的半径,以 0 到 240 像素之间的整数表示。 |
|
可选。圆的填充颜色。选项包括:
|
# Draw a green circle on the screen
robot.screen.draw_circle(120, 120, 40, GREEN)
show_file#
show_file
在机器人的屏幕上显示自定义上传的图像,其位置使用基于图像参考点的 x
、y
和 center
参数设置。
用法:
robot.screen.show_file(file, x, y, center)
范围 |
描述 |
---|---|
|
要使用的自定义图像,从 |
|
图像的水平偏移量,以像素为单位的整数形式指定。正值表示向右移动;负值表示向左移动。 |
|
图像的垂直偏移量,以像素为单位的整数形式指定。正值表示向下移动;负值表示向上移动。 |
|
可选。如果 |
# 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
在屏幕上定义一个矩形区域,所有绘图和文本都将被限制在该区域内。该区域之外的任何内容都不会显示。
用法:
robot.screen.set_clip_region(x, y, width, height)
范围 |
描述 |
---|---|
|
剪辑区域左上角的 x 坐标,以 0 到 240 之间的整数或浮点数给出。 |
|
剪辑区域左上角的 y 坐标,以 0 到 240 之间的整数或浮点数表示。 |
|
剪辑区域的宽度(以像素为单位),以 0 到 240 之间的整数或浮点数表示。 |
|
剪辑区域的高度(以像素为单位),以 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)
触碰#
pressing#
pressing
返回一个布尔值,指示屏幕当前是否被按下。
True
– 屏幕被按下False
– 屏幕未被按下
用法:
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)
x_position#
x_position
返回按下屏幕的 x 坐标,以 0(左)到 240(右)之间的整数形式返回。
用法: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(底部)之间的整数形式返回。
用法: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)
打回来#
pressed#
pressed
注册了一个当机器人的屏幕被按下时调用的方法。
用法:robot.screen.pressed(callback, arg)
参数 |
描述 |
---|---|
|
按下屏幕时将调用的方法。 |
|
可选。包含调用回调方法时要传递给该方法的参数的元组。 |
# 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
注册一个当屏幕不再被按下时调用的方法。
用法:robot.screen.released(callback, 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)