屏幕#

介绍#

VEX AIM 编程机器人的屏幕提供了用于显示文本、管理光标、绘制形状和处理触摸交互的模块。以下是所有可用模块的列表,按功能分组:

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

XY 打印 - 在基于像素的坐标处打印文本。

  • print at – 在指定的 x 和 y 坐标处显示文本。

  • 设置屏幕原点 – 更改用于绘图和打印的原点 (0, 0)。

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

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

触摸——检测屏幕交互。

光标打印#

打印#

print 块在机器人屏幕上的当前 光标位置字体 显示文本。

打印堆栈块#
打印 [VEX代码] 在屏幕 ▶

参数

描述

价值

要在屏幕上显示的文本、数字或变量值。

扩大箭头

展开块来读取并将光标设置到下一行,并使光标移动到该块之后的下一行。

例子

启动时,在屏幕的起始光标位置显示消息“你好,机器人!”。#
当开始 :: hat events
[在起始光标位置显示一条消息.]
打印 [你好,机器人!] 在屏幕 ▶

显示 robot.screen.print 方法,并显示单词“Hello Robot!”

将光标设置到行列#

使用“将光标置于行列”块时,光标会置于屏幕上特定的行和列。实际可容纳的行数和列数取决于所选字体。使用默认的等宽中等字体,最多可清晰显示 8 行 13 列。超出此范围的文本可能会被截断或难以阅读。

等宽字体的字符宽度相同,使文本位置保持一致。相比之下,比例字体的字符宽度各不相同,因此某些字母比其他字母占用更多空间。但是,无论使用哪种类型,将光标设置为行列块都会根据行和列的大小(而不是字体样式)来定位光标。可以使用 设置字体 调整字体大小。

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

参数

描述

游标所在行。

柱子

光标所在的列。

示例

启动时,将光标移动到屏幕上的第 3 行、第 2 列,并打印“第 3 行、第 2 列”。#
当开始 :: hat events
[从第 3 行第 2 列开始显示文本.]
在屏幕上设定光标至 (3) 行 (2) 列
打印 [第 3 行,第 2 列] 在屏幕 ▶

显示 robot.screen.print_at 方法,将第 3 行、第 2 列打印在第 3 行第 2 列

当开始 :: hat events
[以有序列表的形式显示货物数量.]
设定屏幕字体为 [比例 v] [大 v]
打印 [运动球] 在屏幕 ◀ 并设定光标至下一行
打印 [橙色桶] 在屏幕 ◀ 并设定光标至下一行
打印 [蓝桶] 在屏幕 ▶
在屏幕上设定光标至 [1] 行 [11] 列
打印 [2] 在屏幕 ▶
在屏幕上设定光标至 [2] 行 [1] 列
打印 [3] 在屏幕 ▶
在屏幕上设定光标至 [3] 行 [11] 列
打印 [3] 在屏幕 ▶

深蓝色圆形背景显示三行白色文字,分别列出运动球 2、橙色桶 3 和蓝色桶 3。数字与每个标签的右侧对齐。

当开始 :: hat events
[显示检测到的 AprilTag 的 ID.]
设定屏幕字体为 [比例 v] [特大 v]
永久循环
清屏
打印 [四月标签] 在屏幕 ▶
获得 AI 视觉仪 [四月标签 v] 数据
如果 <AI 视觉仪对象存在?> 那么
在屏幕上设定光标至 [3] 行 [4] 列
打印 (AI 视觉仪对象 [标签ID v]) 在屏幕 ▶
结束
等待 [0.1] 秒

深蓝色圆形背景在图像中央显示白色文字,第一行显示 AprilTag,第二行显示 4。

将光标设置到下一行#

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

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

参数

描述

该块没有参数。

例子

启动时,在屏幕上打印“第 1 行”,将光标移动到下一行,然后打印“第 2 行”。#
当开始 :: hat events
[显示两行文本.]
打印 [1 号线] 在屏幕 ▶
在屏幕上设定光标至下一行
打印 [2 号线] 在屏幕 ▶

显示 robot.screen.next_row 方法,其中第 1 行和第 2 行分别打印在机器人屏幕上的第 1 行和第 2 行。

清除行#

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

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

参数

描述

要清除的行号。

例子

启动后,打印两行文本。第一行保留,第二行在 3 秒后消失。#
当开始 :: hat events
[在两行上显示文本.]
打印 [此文本保留] 在屏幕 ▶
在屏幕上设定光标至下一行
打印 [此文本消失] 在屏幕 ▶
等待 [3] 秒
清除屏幕第 [2] 行

屏幕光标列#

屏幕光标列块返回将以整数形式打印文本的列号。

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

参数

描述

该块没有参数。

例子

启动时,将光标移动到屏幕上的第 3 行、第 2 列,并打印当前光标列号。#
当开始 :: hat events
[显示光标的当前列.]
在屏幕上设定光标至 [3] 行 [2] 列
打印 (屏幕光标列) 在屏幕 ▶

当您将 curosr 设置为 3,2 时,通过显示列号 2 来显示 robot.screen.print_at 方法

屏幕光标行#

屏幕光标行块返回将以整数形式打印文本的行号。

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

参数

描述

该块没有参数。

例子

启动后,将光标移动到屏幕上的第 6 行、第 2 列,并打印当前光标行号。#
当开始 :: hat events
[显示光标的当前行.]
在屏幕上设定光标至 [3] 行 [2] 列
打印 (屏幕光标行) 在屏幕 ▶

当您将 curosr 设置为 3,2 时,通过显示行号 3 来显示 robot.screen.print_at 方法

XY打印#

设置屏幕原点#

设置屏幕原点 设置在机器人屏幕上绘图或打印时使用的原点 (0,0)。默认情况下,绘图或打印块将屏幕左上角视为原点。此块可以将原点重置为另一个 (x, y) 屏幕坐标位置。

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

参数

描述

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

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

例子

启动时,将屏幕原点设置为 (120, 120),并在新原点处绘制一个矩形,其左上角位于 (0,0)、宽度为 80 像素,高度为 40 像素。#
当开始 :: hat events
[将原点设置为屏幕中心.]
设置屏幕原点x: [120] y: [120]
[在新原点处绘制一个矩形.]
屏幕 [0] [0] [80] [40] 画矩形

机器人的屏幕显示一个白色矩形,左上角位于中心。

设置#

清除屏幕#

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

清除屏幕块#
清屏

参数

描述

该块没有参数。

例子

启动后,以 (120,120) 为圆心,半径为 40 像素绘制一个圆。2 秒后,屏幕清空。#
当开始 :: hat events
[画一个圆圈,2秒后清除.]
屏幕 [120] [120] [40] 画圆形
等待 [2] 秒
清屏

填满屏幕#

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

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

参数

描述

颜色

将背景颜色更改为:

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

例子

当开始 :: hat events
[说 "你好" 然后屏幕变黄.]
打印 [你好] 在屏幕 ▶
等待 [2] 秒
屏幕填充色为 [黄色 v]

设置字体#

设置字体 模块用于设置机器人屏幕上显示文本的字体和大小。此字体将应用于所有后续打印的文本。

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

参数

描述

类型

字体类型:

  • 等宽
  • 比例

尺寸

字体大小(如下所示):

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

机器人用 MONO 12 字体在屏幕上打印数字和字母。它显示了 AZ。屏幕底部显示的数字为 26 行,15 行。
等宽超小字体

机器人用 MONO 15 字体在屏幕上打印数字和字母。它显示 AT。屏幕底部显示 20 个字符,共 12 行。
等宽超小字体

机器人用 MONO 20 字体在屏幕上打印数字和字母。显示 AP。屏幕底部显示 16 行 9 列。
等宽小字体

机器人用 MONO 24 字体在屏幕上打印数字和字母。显示“AM”。屏幕底部显示“AM”字样,横排 13 个,行 8 行。
等宽中等字体

机器人用 MONO 30 字体在屏幕上打印数字和字母。它显示了 AK。在屏幕底部,它有 11 个横排和 6 行。
等宽大字体

机器人用 MONO 40 字体在屏幕上打印数字和字母。它显示了 AK。屏幕底部有 8 个横排 5 行的字体。
等宽超大字体

机器人屏幕打印了 MONO 60 字体的数字和字母。显示 1-6。屏幕底部有 3 行。
等宽超大字体

机器人屏幕上打印了PROP 20字体的数字和字母。它显示为AS。屏幕底部,它有8行9列。
比例小

机器人屏幕上打印了PROP 30字体的数字和字母。它显示了AM。在屏幕底部,它有15个横排和6行。
比例大

机器人用 PROP 40 字体在屏幕上打印数字和字母。它显示 AM。屏幕底部显示 15 个字符,共 6 行。
比例特大

机器人屏幕上打印了PROP 60字体的数字和字母。它显示1-7。屏幕底部有7个横排和3行。
比例超大

例子

启动时,将字体设置为“等宽超大”并在屏幕上打印“VEX”。#
当开始 :: hat events
[使用较大的字体显示文本]
设定屏幕字体为 [等间距 v] [特大 v]
打印 [烦恼] 在屏幕 ▶

机器人屏幕左上角显示Mono 40字体的“VEX”字样。

设置打印精度#

设置打印精度 模块用于设置机器人屏幕上显示数字的精度格式。此打印精度将应用于所有后续打印的数字。

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

参数

描述

精确

将打印精度设置为:

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

例子

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

机器人的屏幕显示一个白色矩形,其顶部居中绘制了一条宽边框。

设置笔宽#

设置笔宽块设置用于绘制线条和形状的笔宽。

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

参数

描述

宽度

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

例子

启动时,将笔宽设置为10像素,并绘制一个矩形,其左上角位于(50,50),宽度为130像素,高度为60像素。#
当开始 :: hat events
[画一个笔宽为10的矩形.]
设定屏幕笔宽为 [10]
屏幕 [50] [130] [100] [60] 画矩形

机器人的屏幕显示一个红色矩形,顶部居中画有一条细边框。

设置画笔/字体颜色#

设置笔/字体颜色块设置用于在机器人屏幕上绘制线条、形状和文本的笔颜色。

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

参数

描述

颜色

将笔颜色设置为:

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

例子

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

机器人的屏幕显示一个红色矩形,顶部居中画有一条细边框。

设置填充颜色#

设置填充颜色块设置绘制形状时使用的填充颜色。

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

参数

描述

颜色

将填充颜色设置为:

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

示例

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

机器人的屏幕上显示两个平行的橙色矩形,带有白色的细边框,略微偏离中心左侧。


启动时,将背景填充颜色设置为紫色并在屏幕上打印“高亮”。#
当开始 :: hat events
[显示具有紫色背景的文本.]
设定屏幕填充色为 [紫色 v]
打印 [强调] 在屏幕 ▶

机器人的屏幕上显示白色文字“突出显示”,并从左上角开始打印,周围带有紫色突出显示。

#

显示图像文件#

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

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

参数

描述

图像槽号

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

例子

待办事项#
当开始 :: hat events
[绘制已上传的图片 1.]
显示图像文件 [1 v]

绘制像素#

绘制像素 块在当前 画笔颜色 中在指定的 (x, y) 屏幕坐标处绘制一个像素。

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

参数

描述

绘制像素的 x 坐标。

绘制像素的 y 坐标。

例子

启动时,在屏幕中心坐标 (120, 120) 处绘制一个像素。#
当开始 :: hat events
[在屏幕中心绘制一个像素.]
屏幕 [120] [120] 画点

机器人的屏幕中央显示一个白色像素。

画线#

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

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

参数

描述

x1

线起点的 x 坐标(以像素为单位)。

y1

线起点的 y 坐标(以像素为单位)。

x2

线末端的 x 坐标(以像素为单位)。

y2

线末端的 y 坐标(以像素为单位)。

例子

启动时,从屏幕左上角(0,0)到右下角(240,240)绘制一条对角线。#
当开始 :: hat events
[从屏幕左上角到右下角画一条线.]
屏幕 [0] [0] [240] [240] 画线段 

机器人的屏幕显示一条从左上角到右下角穿过中心的细对角线。

绘制矩形#

绘制矩形块使用当前的 画笔宽度画笔颜色填充颜色 绘制一个矩形。

绘制矩形块#
屏幕 [0] [0] [10] [10] 画矩形

参数

描述

矩形左上角的 x 坐标(以像素为单位)。

矩形左上角的 y 坐标(以像素为单位)。

宽度

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

高度

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

例子

启动时,在屏幕上绘制一个矩形,左上角位于(50,50),宽度为 130 像素,高度为 60 像素。#
当开始 :: hat events
[在屏幕上绘制一个矩形.]
屏幕 [50] [130] [100] [60] 画矩形

机器人的屏幕显示一个红色矩形,顶部有一条细白边框。

画圆#

画圆 块使用当前的 笔宽笔颜色填充颜色 绘制一个圆圈。

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

参数

描述

圆心的 x 坐标(以像素为单位)。

圆心的 y 坐标(以像素为单位)。

半径

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

例子

启动时,在屏幕上绘制一个圆心为(120,120)、半径为40像素的圆圈。#
当开始 :: hat events
[在屏幕上绘制一个矩形.]
屏幕 [120] [120] [40] 画圆形

机器人的屏幕显示一个绿色圆圈,中间画有一条细白边框。

触碰#

屏幕被按下?#

屏幕是否被按下? 模块返回机器人的屏幕当前是否被按下。该模块返回一个布尔值:

  • True - 屏幕当前被按下

  • False - 屏幕未被按下

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

参数

描述

该块没有参数。

例子

启动后,持续检测屏幕是否被按下。如果被按下,所有 LED 灯亮起白色;否则,所有 LED 灯保持熄灭。#
当开始 :: hat events
[仅当按下屏幕时,LED 才会变为白色.]
永久循环
如果 <屏幕按下了?> 那么
将 [lightall v] LED颜色设置为 [白色 v]
否则
将 [lightall v] LED颜色设置为 [灭 v]
结束
结束

屏幕位置#

屏幕位置 块返回一个整数,表示按下屏幕时的 x 和 y 坐标(以像素为单位)。x 的返回值介于 0(左)和 240(右)之间。y 的返回值介于 0(上)和 240(下)之间。

关闭状态的 AIM 机器人的俯视图,显示一个白色方形覆盖层,其角分别标有坐标 (0,0)、(240,0)、(0,240) 和 (240,240)。一个红色圆圈位于方形中心,一条白色虚线十字线与图像中间相交,坐标为 120,120。

屏幕位置报告块#
(屏幕 [x v] 位置)

参数

描述

协调

最后一次屏幕按下的坐标(以像素为单位):

  • x - 水平位置
  • y - 垂直位置

例子

启动后,持续检测屏幕是否按下。如果按下,则清除屏幕并打印触摸位置的 x 和 y 坐标。#
当开始 :: hat events
[显示按下屏幕的 x 和 y 坐标。]
永久循环
如果 <屏幕按下了?> 那么
清屏
打印 (屏幕 [x v] 位置) 在屏幕 ▶
在屏幕上设定光标至下一行
打印 (屏幕 [y v] 位置) 在屏幕 ▶
结束
结束

当屏幕事件#

当机器人的屏幕被按下或不再被按下时,将调用当屏幕事件块。

当屏幕事件帽子块#
当屏幕 [按下 v] :: hat events

参数

描述

行动

确定附加的块堆栈何时执行:

  • 按下
  • 释放

例子

按下屏幕时,所有 LED 均变为绿色。#
当屏幕 [按下 v] :: hat events
[按下屏幕时将 LED 设置为绿色.]
将 [lightall v] LED颜色设置为 [绿色 v]