屏幕#

介绍#

屏幕模块控制 V5 大脑的触摸屏,使你的机器人能够显示文本、数字和图形,并响应触摸输入。

默认情况下,打印到大脑的字体是等宽小号,它有 12 行 48 列。

大脑的绘图分辨率为 480 x 240 像素。

V5 大脑屏幕,红色网格线显示了总共 12 行 48 列的布局。像素尺寸为 479 宽 x 239 高。左上角起始于 (0,0) 像素,位于第 1 行第 1 列;右下角结束于 (479, 239) 像素,位于第 12 行第/_static/img/screen/brain-resolution.png列。

以下是可用模块列表:

光标打印 – 显示文本并管理打印光标。

设置 – 更改文本和图形的外观。

绘图 – 在大脑屏幕上创建形状、线条和图形。

触摸 – 检测大脑屏幕上的触摸输入。

  • 屏幕被按下 – 报告屏幕当前是否被触摸。

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

  • 当屏幕 – 当屏幕被按下或释放时运行附加的模块。

光标打印#

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

“将光标设置到屏幕上的行列”堆栈块会将光标移动到 Brain 屏幕上的特定行和列。下一个“在屏幕上打印”块将从该位置开始打印。可容纳#print-on-screen行数和列数取决于所选字体。使用默认的等宽中等字体,最多可以清晰显示 8 行和 13 列。超出此范围的文本可能会被截断或难以阅读。

等宽字体的所有字符宽度相同,因此文本位置保持一致。相比之下,比例字体的字符宽度各不相同,因此有些字母占用的空间比其他字母大。但是,无论使用哪种字体,set cursor to row column on screen 堆栈块都会根据行和列的大小(而不是字体样式)来定位光标。可以使用 set font on screen 堆栈块来调整字体大小。

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

参数

描述

要将光标移动到的行。

柱子

要将光标移动到的列。

例子

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

V5 Brain 的屏幕截图,显示屏幕上方靠近中心位置打印的第 3 行第 12 列。

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

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

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

参数

描述

此代码块没有参数。

例子

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

V5 Brain 屏幕的截图,显示左上角有两行白色文字。上面一行是“第 1 行”,紧挨着它的第二行是“第 2 行”。

屏幕上的清除行#

清除屏幕上的行堆栈块清除大脑屏幕上的一行文本。

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

参数

描述

要清除的行号。

例子

启动后,文本会打印在两行上。第一行会一直显示,而第二行会在 3 秒后消失。#
当开始
[Only keep the text on row 1.]
在屏幕上打印 [This text stays]▶
在屏幕上设定光标至下一行
在屏幕上打印 [This text disappears]▶
等待 [3] 秒
清除屏幕第 [2] 行

屏幕光标列#

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

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

参数

描述

此代码块没有参数。

例子

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

V5 Brain 屏幕的屏幕截图,显示屏幕左上角第 3 行第 15 列位置的白色文字“15”。

屏幕光标行#

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

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

参数

描述

此代码块没有参数。

例子

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

V5 Brain 屏幕的屏幕截图,显示屏幕左上角第 3 行第 2 列位置的白色文字“3”。

设置#

清晰屏幕#

清除屏幕堆栈块会清除大脑屏幕上的所有图形和文本。

清除屏幕堆栈块#
清屏

参数

描述

此代码块没有参数。

例子

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

设置屏幕上的字体#

“设置屏幕字体”堆栈块用于设置大脑屏幕上显示的文本的字体和大小。此字体将应用于之后打印的所有文本。

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

参数

描述

风格

字体样式:等宽字体等宽字体

尺寸

字体大小(示例如下):

  • 特小
  • 特大
  • 超大
**注意:**比例字体不支持特小和小尺寸。

V5 Brain 屏幕截图,左上角以白色 MONO 12 字体打印数字和字母。其中一行显示 AZ,约占屏幕宽度的四分之一。左下角显示 80 列和 20 行。
等宽超小号

与上一张图片相同,但字体为 Mono 15。图中一行显示“AZ”,几乎占据了屏幕一半的宽度。左下角显示“68 列
行/_static/img/fonts/mono15.png。

与上一张图片相同,但字体为 Mono 20。图中一行显示“AZ”,占据了屏幕宽度的近三分之二。左下角显示“48 列
行/_static/img/fonts/mono20.png。

与上一张图片相同,但字体为 Mono 30。图中一行显示 AZ,几乎占据了整个屏幕宽度。左下角显示“32 列
行/_static/img/fonts/mono30.png。

与上一张图片相同,但字体为 Mono 40。图中一行显示 AX,横跨屏幕宽度。左下角显示“24 列
行/_static/img/fonts/mono40.png。

与上一张图片相同,但字体为 Mono 60。图片中一行显示 AP 字样,横跨屏幕宽度。底部显示“16 列
行/_static/img/fonts/mono60.png。

与上一张图片相同,但字体为 Prop 20。图中一行显示“AZ”,占据了屏幕宽度的近三分之二。左下角显示“48 列 12 行”。(/_static/img/fonts/prop20.png)
比例中等

与上一张图片相同,但字体为 Prop 30。图中一行显示“AZ”,几乎占据了整个屏幕宽度。左下角显示“32 列 8 行”。
比例大

与上一张图片相同,但字体为 Prop 40。图中一行显示“AU”,横跨屏幕宽度。左下角显示“24 列 6 行”。
比例超大

与上一张图片相同,但字体为 Prop 60。图片中一行显示“AN”,横跨屏幕宽度。底部显示“15 列 4 行”。
比例超大

例子

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

V5 Brain 屏幕的截图,显示左上角“VEX”字样的字体比默认字体更大。

设置屏幕打印精度#

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

设置打印精度堆栈块#
在屏幕上设定打印精度为 [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])▶

V5 Brain 屏幕的截图,左上角显示文字“0.33”。

设置屏幕上的笔宽#

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

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

参数

描述

宽度

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

例子

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

V5 Brain 屏幕的屏幕截图,显示屏幕左上角打印着一个带有粗边框的矩形。

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

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

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

参数

描述

颜色

要使用的笔和字体颜色:

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

例子

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

V5 Brain 屏幕的截图,显示屏幕左上角有一个橙色矩形。

设置屏幕填充颜色#

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

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

参数

描述

颜色

填充颜​​色:

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

示例

启动时,将填充颜色设置为紫色,并绘制一个矩形。矩形位于 (50, 130) 处,宽度为 100 像素,高度为 60 像素。#
当开始
[Draw a purple rectangle.]
设定屏幕填充色为 [purple v]
在屏幕 [50] [130] [100] [60] 上画矩形

V5 Brain 屏幕的截图,显示屏幕左下角有一个填充紫色的矩形。

#

在屏幕上绘制像素#

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

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

参数

描述

x

绘制像素的 x 坐标,范围从 0 到 479。

绘制像素的 y 坐标,范围从 0 到 239。

例子

启动时,绘制四个像素来标记一个小正方形的四个角。#
当开始
[Draw the pixels marking the corners of a square.]
在屏幕 [250] [100] 上画点
在屏幕 [275] [100] 上画点
在屏幕 [250] [125] 上画点
在屏幕 [275] [125] 上画点

V5 Brain 屏幕的截图,显示屏幕中心附近一个正方形的四个角由各种像素组成。

在屏幕上画线#

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

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

参数

描述

x1

行首的 x 坐标(像素),范围从 0 到 479。

y1

线段起始点的 y 坐标(像素),取值范围为 0 到 239。

x2

行尾的 x 坐标(像素),范围从 0 到 479。

y2

线段末端的 y 坐标(像素),取值范围为 0 到 239。

例子

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

V5 Brain 屏幕的截图显示,屏幕中心有一条细斜线,从左上角延伸到右下角。

在屏幕上绘制矩形#

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

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

参数

描述

x

矩形左上角的 x 坐标(像素),取值范围为 0 到 479。

矩形左上角的 y 坐标(像素),取值范围为 0 到 239。

宽度

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

高度

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

例子

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

V5 大脑屏幕的截图显示,左上象限打印着一个带有细白边框的矩形。

在屏幕上画一个圆#

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

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

参数

描述

x

圆心的 x 坐标(像素值),取值范围为 0 到 479。

圆心的 y 坐标(像素值),取值范围为 0 到 239。

半径

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

例子

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

V5 Brain 屏幕的截图显示,中心画有一个带有细白边框的圆圈。

触碰#

屏幕按下#

屏幕按下布尔模块报告大脑的触摸屏当前是否被按下。

  • 正确 – 屏幕被按下。

  • 错误 – 屏幕没有被按下。

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

参数

描述

此代码块没有参数。

启动后,按下屏幕即可改变屏幕颜色。#
当开始
[Change the screen's color after it's pressed.]
等到 <屏幕按下了?>
设定屏幕填充色为 [绿色 v]
在屏幕 [0] [0] [479] [239] 上画矩形
按下屏幕后,会显示第一条信息。然后,程序会等待屏幕松开,只有在再次按下屏幕后才会继续显示第二条信息。#
当开始
[Display different messages after the screen is pressed.]
等到 <屏幕按下了?>
在屏幕上打印 [First message!]▶
在屏幕上设定光标至下一行
[Lift finger to press the screen again.]
等到 <非 <屏幕按下了?>>
等到 <屏幕按下了?>
在屏幕上打印 [Second message!]▶

屏幕位置#

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

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

参数

描述

报告上次屏幕按键的坐标:x – 水平位置 或 y – 垂直位置

按下大脑屏幕时,会在按下位置画一个圆圈。#
当开始
[Display a circle where the screen is pressed.]
等到 <屏幕按下了?>
设定屏幕填充色为 [white v]
在屏幕 (屏幕 [X v] 坐标) (屏幕 [y v] 坐标) [20] 上画圆形

屏幕#

当按下或释放 Brain 屏幕时,when screen 帽子模块会运行连接的模块堆栈。

当屏幕帽子阻挡#
当Brain屏幕 [pressed v] :: hat events

参数

描述

状态

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

按下大脑屏幕时,会在按下位置画一个圆圈。#
当Brain屏幕 [pressed v] :: hat events
[Color the screen with polka dots by pressing it repeatedly.]
设定屏幕填充色为 [红色 v]
在屏幕 (屏幕 [X v] 坐标) (屏幕 [y v] 坐标) [20] 上画圆形