屏幕#

介绍#

屏幕模块控制 VEX AIM 编程机器人如何在屏幕上显示文本、数字和图形,以及如何响应屏幕按键。

以下是所有模块的列表:

光标打印 — 使用行列光标系统管理文本显示。

XY Print — Print text at pixel-based coordinates.

设置 — 自定义文本格式和屏幕显示。

绘图——创建图形和视觉元素。

触摸 — 检测屏幕交互。

  • 屏幕被按下 — 报告屏幕当前是否被按下。

  • 屏幕位置 — 报告上次屏幕按下时选定的 x 或 y 坐标。

  • 屏幕事件 — 当屏幕被按下或释放时运行附加代码块。

光标打印#

将光标设置到屏幕上的行列#

The set cursor to row column on screen stack block moves the cursor to a specific row and column on the robot’s screen. The next print on screen block will start printing at that location. How many rows and columns can comfortably fit depends on the selected font. With the default monospaced medium font, up to 8 rows and 13 columns can be displayed clearly. Text placed beyond this range may be cut off or become difficult to read.

等宽字体具有相同宽度的字符,使文本位置保持一致。相比之下,比例字体在字符宽度上有所不同,因此有些字母比其他字母占用的空间更大。但是,无论使用哪种类型, * 将光标设置为屏幕上的行列 堆栈块都会根据行和列大小而不是字体样式来定位光标。可以使用[ * set font on screen * *] (#set-font-on-screen)堆栈块调整字体大小。

设置游标堆栈块#
在屏幕上设定光标至 [1] 行 [1] 列

参数

描述

要将光标移动到的行。

柱子

要将光标移动到的列。

示例

启动时,将光标移动到屏幕上的第 3 行、第 2 列,并打印“第 3 行、第 2 列”。#
当开始
[Display text starting at Row 3 Column 2.]
在屏幕上设定光标至 (3) 行 (2) 列
在屏幕上打印 [Row 3, Column 2]▶

机器人屏幕的截图,屏幕中心上方用白色字体打印了第 3 行第 2 列,从第 3 行第 2 列开始。

当开始
[Display cargo amounts in an organized list.]
设定屏幕字体为 [比例字体 v] [大 v]
在屏幕上打印 [Sports Balls]◀ 并设定光标为下一行
在屏幕上打印 [Orange Barrels]◀ 并设定光标为下一行
在屏幕上打印 [Blue Barrels]▶
在屏幕上设定光标至 [1] 行 [11] 列
在屏幕上打印 [2]▶
在屏幕上设定光标至 [2] 行 [11] 列
在屏幕上打印 [3]▶
在屏幕上设定光标至 [3] 行 [11] 列
在屏幕上打印 [3]▶

机器人屏幕的截图显示三行白色文字,分别列出“运动球 2”、“橙色桶 3”和“蓝色桶 3”。数字位于每个标签的右侧,列表从屏幕顶部开始。

当开始
[Display the ID of the detected AprilTag.]
设定屏幕字体为 [比例字体 v] [特大 v]
永久循环
清屏
在屏幕上打印 [AprilTag]▶
从 AI 视觉仪获取 [所有AprilTags v] 数据
如果 <AI 视觉仪对象存在?> 那么
在屏幕上设定光标至 [3] 行 [4] 列
在屏幕上打印 (AI 视觉仪对象 [tagID v])▶
结束
等待 [0.1] 秒

机器人屏幕的截图,屏幕中央附近印有白色文字,第一行是 AprilTag,第二行是 4。

将光标移至屏幕上的下一行#

将光标设置到屏幕上的下一行 堆栈块将光标移动到机器人屏幕上下一行的第 1 列。

将光标设置到下一行堆栈块#
在屏幕上设定光标至下一行

参数

描述

该块没有参数。

例子

启动时,在屏幕上打印“第 1 行”,将光标移动到下一行,然后打印“第 2 行”。#
当开始
[Display two lines of text.]
在屏幕上打印 [Line 1]▶
在屏幕上设定光标至下一行
在屏幕上打印 [Line 2]▶

机器人屏幕的截图,文字为白色。屏幕顶部左对齐显示“第 1 行”,下方紧邻“第 2 行”。

清除屏幕上的一行#

清除屏幕上的行堆栈块会清除机器人屏幕上的一行文本。

清除行堆栈块#
清除屏幕第 [1] 行

参数

描述

要清除的行号。

例子

启动后,打印两行文本。第一行保留,第二行在 3 秒后消失。#
当开始
[Display text on two rows.]
在屏幕上打印 [This text stays]▶
在屏幕上设定光标至下一行
在屏幕上打印 [This text disappears]▶
等待 [3] 秒
清除屏幕第 [2] 行

屏幕光标列#

屏幕光标列 报告块会以整数形式报告文本将要打印的列号。

屏幕光标列报告块#
(屏幕光标列数)

参数

描述

该块没有参数。

例子

启动时,将光标移动到屏幕上的第 3 行、第 2 列,并打印当前光标列号。#
当开始
[Display the cursor's current column.]
在屏幕上设定光标至 [3] 行 [2] 列
在屏幕上打印 (屏幕光标列数)▶

机器人屏幕的截图,左上象限中心附近,第 3 行第 2 列,印有一个白色的数字 2。

屏幕光标行#

屏幕光标行 报告块会以整数形式报告文本将要打印的行号。

屏幕光标行报告块#
(屏幕光标行数)

参数

描述

该块没有参数。

例子

启动后,将光标移动到屏幕上的第 6 行、第 2 列,并打印当前光标行号。#
当开始
[Display the cursor's current row.]
在屏幕上设定光标至 [3] 行 [2] 列
在屏幕上打印 (屏幕光标行数)▶

机器人屏幕的截图,左上象限中心附近,第 3 行第 2 列,印有一个白色的数字 3。

XY打印#

设置屏幕原点#

设置屏幕原点 代码块用于更改机器人屏幕上绘图或打印的原点 (0, 0)。默认情况下,原点位于屏幕左上角。此代码块可以将原点重置为其他 (x, y) 屏幕坐标位置。

设置屏幕原点堆栈块#
设置屏幕原点 x: [0] y: [0]

参数

描述

x

要设置为新原点的 x 坐标(以像素为单位)。

y

要设置为新原点的 y 坐标(以像素为单位)。

例子

启动时,将屏幕原点设置为 (120, 120),并在新原点处绘制一个矩形,其左上角位于 (0,0)、宽度为 80 像素,高度为 40 像素。#
当开始
[Set the origin to the center of the screen.]
设置屏幕原点 x: [120] y: [120]
[Draw a rectangle at the new origin.]
在屏幕 [0] [0] [80] [40] 上画矩形

机器人屏幕的截图,左下角绘制了一个白色矩形。矩形的左上角是屏幕中心。

设置#

清除屏幕#

清除屏幕堆栈块会清除机器人屏幕上的所有图形和文本,并将光标位置重置为第 1 行第 1 列。

清除屏幕堆栈块#
清屏

参数

描述

该块没有参数。

例子

启动后,以 (120,120) 为圆心,半径为 40 像素绘制一个圆。2 秒后,屏幕清空。#
当开始
[Draw a circle, and clear it after 2 seconds.]
在屏幕 [120] [120] [40] 上画圆形
等待 [2] 秒
清屏

填满屏幕#

填充屏幕堆栈块会清除机器人屏幕上的所有图形和文本,然后将背景更改为指定的颜色。

填充屏幕堆栈块#
屏幕填充色为 [红色 v]

参数

描述

颜色

背景颜色:

  • 红色
  • 绿色
  • 蓝色
  • 黑色
  • 白色
  • 黄色
  • 橙色
  • 紫色
  • 青色

例子

当开始
[Say "Hello" then turn screen yellow.]
在屏幕上打印 [Hello]▶
等待 [2] 秒
屏幕填充色为 [yellow v]

设置屏幕上的字体#

设置屏幕字体 代码块用于设置机器人屏幕上显示文本的字体和字号。此字体将应用于之后打印的所有文本。

设置字体堆栈块#
设定屏幕字体为 [等宽字体 v] [超小 v]

参数

描述

类型

字体类型:等宽字体等宽字体

尺寸

字体大小(如下所示):

  • 超小
  • 特小
  • 特大
  • 超大

机器人屏幕截图,显示以 Mono 12 字体打印的数字和字母示例。字母表占据1行文本。底部文字横向 26 个字符,共 15 行。
等宽超小号

与上一张图片相同,但字体为 Mono 15。字母 A-T 占据1行文字。底部文字为 20 个字符宽,12 行。(/_static/img/fonts/mono15.png)
等宽特小号

与上一张图片相同,但字体为 Mono 20。字母 A-P 占据1行文字。底部文字为 16 个字符宽,共 9 行。(/_static/img/fonts/mono20.png)
等宽小号

与上一张图片相同,但字体为 Mono 24。字母 A-M 占据1行文字。底部文字横向 13 个字符,共 8 行。(/_static/img/fonts/mono24.png)
等宽中等字体

与上一张图片相同,使用 Mono 30 字体。字母 A-K 占据1行文字。底部文字横向 11 个字符,共 6 行。
等宽大号

与上一张图片相同,使用 Mono 40 字体。字母 A-H 占据1行文字。底部文字横向 8 个字符,共 5 行。
等宽特大号

与上一张图片相同,使用 Mono 60 字体。数字 1-6 占据1行文字。底部文字占据3行。
等宽超大号

与上一张图片相同,但使用 Prop 20 字体。字母 A-s 占据1行文本。底部文字为 20 个字符宽,9 行高。
比例小

与上一张图片相同,但使用 Prop 30 字体。字母 A-M 占据1行文字。底部文字为 15 个字符,共 6 行。
比例大

与上一张图片相同,但使用 Prop 40 字体。字母 A-J 占据1行文字。底部文字为 11 个字符,共 5 行。
比例超大

机器人屏幕截图,显示以 Prop 60 字体打印的数字样本。数字 1-7 占据1行文本。底部显示 7 行 3 列。
比例超大

例子

启动时,将字体设置为“等宽超大”并在屏幕上打印“VEX”。#
当开始
[Display text using a larger font]
设定屏幕字体为 [等宽字体 v] [特大 v]
在屏幕上打印 [VEX]▶

机器人屏幕的截图显示,左上角用白色 Mono 40 字体打印着 VEX 字样。

设置屏幕打印精度#

设置屏幕打印精度 堆栈块用于设置机器人屏幕上打印数字时显示的小数位数。此打印精度将应用于之后打印的所有数字。

设置打印精度堆栈块#
在屏幕上设定打印精度为 [0.1 v]

参数

描述

精确

打印精度:

  • 1
  • 0.1
  • 0.01
  • 0.001
  • 所有数字

例子

启动时,将打印精度设置为小数点后两位,并在屏幕上将 1/3 打印为 0.33。#
当开始
[Print 1/3 as 0.33.]
在屏幕上设定打印精度为 [0.01 v]
在屏幕上打印 ([1] [math_division v] [3])▶

机器人屏幕的截图左上角显示白色数字 0.33。

设置屏幕上的笔宽#

设置屏幕上的笔宽 堆栈块用于设置绘制线条和形状轮廓的粗细。

设置笔宽堆叠块#
设定屏幕笔宽为 [10]

参数

描述

宽度

笔的宽度,以像素为单位,范围从 0 到 32。

例子

启动时,将笔宽设置为10像素,并绘制一个矩形,其左上角位于(50,50),宽度为130像素,高度为60像素。#
当开始
[Draw a rectangle with a pen width of 10.]
设定屏幕笔宽为 [10]
在屏幕 [50] [50] [130] [60] 上画矩形

机器人屏幕的截图,上半部分画着一个粗白矩形。

设置屏幕上的笔/字体颜色#

设置屏幕上的笔/字体颜色 堆栈块设置文本、像素、线条和形状轮廓的颜色。

设置笔/字体颜色堆叠块#
设定屏幕笔/字体颜色为 [红色 v]

参数

描述

颜色

要使用的笔和字体颜色:

  • 红色
  • 绿色
  • 蓝色
  • 黑色
  • 白色
  • 黄色
  • 橙色
  • 紫色
  • 青色
  • 透明

例子

启动时,将画笔颜色设置为红色,并绘制一个矩形,左上角位于(50,50),宽度为130像素,高度为60像素。#
当开始
[Draw a rectangle with a red pen.]
设定屏幕笔/字体颜色为 [红色 v]
在屏幕 [50] [50] [130] [60] 上画矩形

机器人屏幕的截图,上半部分画着一个细边框的红色矩形。

设置屏幕填充颜色#

设置屏幕填充颜色 堆栈块用于设置绘制形状时使用的填充颜色。

设置填充颜色堆栈块#
设定屏幕填充色为 [红色 v]

参数

描述

颜色

填充颜​​色:

  • 红色
  • 绿色
  • 蓝色
  • 黑色
  • 白色
  • 黄色
  • 橙色
  • 紫色
  • 青色
  • 透明

示例

启动后,将填充颜色设置为橙色,并绘制两个矩形。第一个矩形位于 (50, 50),第二个矩形位于 (50, 130),宽度均为 100 像素,高度均为 60 像素。#
当开始
[Draw two orange rectangles.]
设定屏幕填充色为 [orange v]
在屏幕 [50] [50] [100] [60] 上画矩形
在屏幕 [50] [130] [100] [60] 上画矩形

机器人屏幕的截图,屏幕左侧中央有两个平行的橙色矩形,带有细细的白色轮廓。


启动时,将背景填充颜色设置为紫色并在屏幕上打印“高亮”。#
当开始
[Display text with a purple background.]
设定屏幕填充色为 [purple v]
在屏幕上打印 [Highlight]▶

机器人屏幕的截图显示“高亮显示”,白色文字周围有紫色高亮圈,从左上角开始。

#

在屏幕上显示图像文件#

在屏幕上显示图像文件堆栈块会在机器人的屏幕上绘制用户上传的自定义图像。

显示用户图像堆栈块#
显示图像文件 [1 v]

参数

描述

图像槽号

要使用的自定义图像,编号 1 到 10。图像编号与 AIM 控制面板中显示的数字一致。

例子

当开始
[Draw uploaded Image 1.]
显示图像文件 [1 v]

在屏幕上绘制像素#

在屏幕上绘制像素堆栈块使用当前的画笔颜色在选定的x和y坐标处绘制一个像素。

默认情况下,屏幕原点位于屏幕左上角 (0, 0)。x 轴上,0 位于屏幕左侧,240 位于屏幕右侧。y 轴上,0 位于屏幕顶部,240 位于屏幕底部。您可以使用 [set screen origin](#set-screen-origin) 代码块将原点移动到其他位置。更改原点后,x 轴和 y 轴的坐标范围也会随之改变。

例如,如果原点设置为 (120, 120),则 x 和 y 坐标的范围将从 -120 到 120。

绘制像素堆栈块#
在屏幕 [0] [0] 上画点

参数

描述

x

绘制像素的 x 坐标,范围从 0 到 240,默认原点为 0。

y

绘制像素的 y 坐标,范围从 0 到 240,默认原点为 0。

例子

启动时,在屏幕中心坐标 (120, 120) 处绘制一个像素。#
当开始
[Draw a pixel at the center of the screen.]
在屏幕 [120] [120] 上画点

机器人屏幕的截图,中心有一个白色像素。

在屏幕上画线#

在屏幕上绘制线条堆栈块使用当前的笔宽笔颜色从第一个屏幕坐标(x1, y1)到第二个屏幕坐标(x2, y2)绘制一条线。

默认情况下,屏幕原点位于屏幕左上角 (0, 0)。x 轴上,0 位于屏幕左侧,240 位于屏幕右侧。y 轴上,0 位于屏幕顶部,240 位于屏幕底部。您可以使用 [set screen origin](#set-screen-origin) 代码块将原点移动到其他位置。更改原点后,x 轴和 y 轴的坐标范围也会随之改变。

例如,如果原点设置为 (120, 120),则 x 和 y 坐标的范围将从 -120 到 120。

画线堆叠块#
在屏幕 [0] [0] [10] [10] 上画线段

参数

描述

x1

行起点的 x 坐标(以像素为单位),范围从 0 到 240,默认原点为 0。

y1

行起点的 y 坐标(以像素为单位),范围从 0 到 240,默认原点为 0。

x2

行尾的 x 坐标(以像素为单位),范围从 0 到 240,默认原点为 0。

y2

行尾的 y 坐标(以像素为单位),范围从 0 到 240,默认原点为 0。

例子

启动时,从屏幕左上角(0,0)到右下角(240,240)绘制一条对角线。#
当开始
[Draw a line from the top left to bottom right of the screen.]
在屏幕 [0] [0] [240] [240] 上画线段

机器人屏幕的截图,从左上角到右下角画了一条细细的白色对角线。

在屏幕上绘制矩形#

在屏幕上绘制矩形堆栈块使用当前的画笔宽度画笔颜色填充颜色绘制矩形。

默认情况下,屏幕原点位于屏幕左上角 (0, 0)。x 轴上,0 位于屏幕左侧,240 位于屏幕右侧。y 轴上,0 位于屏幕顶部,240 位于屏幕底部。您可以使用 [set screen origin](#set-screen-origin) 代码块将原点移动到其他位置。更改原点后,x 轴和 y 轴的坐标范围也会随之改变。

例如,如果原点设置为 (120, 120),则 x 和 y 坐标的范围将从 -120 到 120。

绘制矩形堆叠块#
在屏幕 [0] [0] [10] [10] 上画矩形

参数

描述

x

矩形左上角的 x 坐标(以像素为单位),取值范围为 0 到 240,默认原点为 0。

y

矩形左上角的 y 坐标(以像素为单位),取值范围为 0 到 240,默认原点为 0。

宽度

矩形的宽度(以像素为单位)。

高度

矩形的高度(以像素为单位)。

例子

启动时,在屏幕上绘制一个矩形,左上角位于(50,50),宽度为 130 像素,高度为 60 像素。#
当开始
[Draw a rectangle on the screen.]
在屏幕 [50] [50] [130] [60] 上画矩形

机器人屏幕的截图,上半部分画了一个白色矩形。

在屏幕上画一个圆#

在屏幕上绘制圆形堆栈块使用当前的画笔宽度画笔颜色填充颜色绘制圆形。

默认情况下,屏幕原点位于屏幕左上角 (0, 0)。x 轴上,0 位于屏幕左侧,240 位于屏幕右侧。y 轴上,0 位于屏幕顶部,240 位于屏幕底部。您可以使用 [set screen origin](#set-screen-origin) 代码块将原点移动到其他位置。更改原点后,x 轴和 y 轴的坐标范围也会随之改变。

例如,如果原点设置为 (120, 120),则 x 和 y 坐标的范围将从 -120 到 120。

画圆堆叠块#
在屏幕 [0] [0] [10] 上画圆形

参数

描述

x

圆心的 x 坐标(以像素为单位),取值范围为 0 到 240,默认原点为圆心。

y

圆心的 y 坐标(以像素为单位),取值范围为 0 到 240,默认原点为圆心。

半径

圆的半径(以像素为单位)。

例子

启动时,在屏幕上绘制一个圆心为(120,120)、半径为40像素的圆圈。#
当开始
[Draw a circle on the screen.]
在屏幕 [120] [120] [40] 上画圆形

机器人屏幕的截图,中心画有一个白色圆圈。

触碰#

屏幕按下#

屏幕按下布尔块报告机器人的屏幕当前是否被按下。

  • 正确 — 屏幕正在被按下。

  • 错误 — 屏幕未被按下。

屏幕按下布尔块#
<屏幕按下了?>

参数

描述

该块没有参数。

例子

启动后,持续检测屏幕是否被按下。如果被按下,所有 LED 灯亮起白色;否则,所有 LED 灯保持熄灭。#
当开始
[Turn LEDs white only when the screen is pressed.]
永久循环
如果 <屏幕按下了?> 那么
设定 [lightall v] LED 颜色为 [white v]
否则
设定 [lightall v] LED 颜色为 [灭 v]
结束
结束

屏幕位置#

屏幕位置报告模块会报告上次屏幕按键的选定坐标。x 坐标范围为 0(左)到 240(右)。y 坐标范围为 0(上)到 240(下)。

屏幕位置报告块#
(屏幕 [X v] 坐标)

参数

描述

协调

最后一次屏幕按键的坐标用于报告:x 表示水平位置,y 表示垂直位置。

例子

启动后,持续检测屏幕是否按下。如果按下,则清除屏幕并打印触摸位置的 x 和 y 坐标。#
当开始
[Display the x and y coordinate of where the screen is pressed.]
永久循环
如果 <屏幕按下了?> 那么
清屏
在屏幕上打印 (屏幕 [X v] 坐标)▶
在屏幕上设定光标至下一行
在屏幕上打印 (屏幕 [y v] 坐标)▶
结束
结束

当屏幕事件#

当机器人的屏幕被按下或释放时,when screen event 模块会运行附加的模块堆栈。

当屏幕事件帽子阻挡#
当屏幕 [pressed v]

参数

描述

行动

何时运行附加的积木栈:pressed 在屏幕被按下时运行,released 在屏幕被释放时运行。

例子

按下屏幕时,所有 LED 均变为绿色。#
当屏幕 [pressed v]
[Set the LEDs to green when the screen is pressed.]
设定 [lightall v] LED 颜色为 [绿色 v]