Scratch编程教程-Scratch 文本

在Scratch中,无法将任意文本放置在舞台上。通常情况下,只能操作预定义的精灵或使用钢笔工具生成任意绘画。
15.1 显示文本
要在Scratch应用程序中显示文本,可以使用:
对话框
变量显示
列表表示
在本节中,我们将开发一个特殊的精灵,它具有字母符号(字母、数字、标点符号)作为角色。然后,我们将使用这些字母精灵来创建文本。通过使用精灵作为字母,我们的文本可以具有:
位置
大小
颜色
角度
如果文本是静态的,我们可以使用印章工具。如果文本需要是动态的,我们使用克隆。
15.2 定义字母
首先,我们定义一个字母精灵。我们只处理26个小写字母,但我们可以包括大写字母、数字、标点符号和其他特殊字符。
这是字母“a”。它是一个带有字母“a”的矢量图形。请注意,字母的高度恰好为101。
精灵的原点需要放置在邮箱的左下角。最好在最高缩放级别下进行此操作。
现在我们可以将此造型复制25次。然后,我们用剩余的字母替换所有字母。
最后,我们将所有精灵的名称重命名为它们的字母。这是前三个字母。
我们注意到所有三个框的高度为101个点,但宽度从46个点到49个点到36个点不等。
这非常接近将在下一节中计算并存储在名为“宽度”的列表中的值。
15.3 计算字母宽度
Scratch没有返回精灵宽度的函数。测量精灵大小的唯一方法是将其像素一点一点地移动,直到它接触到四个边缘之一。
我们创建一个宽度列表,其中包含26个字母值。在开始时,我们:
将字母重置为水平方向(90°)。
切换到第一个造型(字母“a”)。
将其大小设置为100%。
清除任何图形效果。
删除列表中的所有项目。
进入循环以获取每个字母的宽度。
由于所有服装的原点都在左下⻆,因此我们只需要检测与右边缘的交点。
该函数的⼯作原理如下:
- 将字⺟放在 x=120 处。
- 逐个像素前到右⾯接触边缘
- 宽度w = 240 – x
15.4 写一段文字
现在我们可以定义一个函数来组合文本字符。该函数执行以下操作:
- 设置精灵大小。
- 重置索引 i。
- 进入循环以处理文本中的每个字符。
- 在循环中,我们切换服装到当前字符。
- 从宽度表中获取其宽度。
- 如果字符是空格,则向前移动 20 步。
- 否则,向前移动字母的宽度。
上述函数根据当前精灵执行以下操作:
- 位置
- 方向
- 颜色
- 透明度
为方便起见,我们定义了一个包括位置的第二个写入函数。
现在我们可以定义演示,从按下空格键开始。