Scratch编程从入门到精通
上QQ阅读APP看书,第一时间看更新

2.2 问答指令

图2-2-1 询问和回答指令积木

Scratch提供简单易用的人机交互功能,能够让舞台上的角色以气泡框显示文本信息的方式向用户发出询问,并提供一个文本输入框以便用户通过键盘输入信息作为回答。例如,在编写一个求解方程的程序时,需要由用户从键盘输入未知数的数值,再由程序计算出方程的解。如图2-2-1所示,在Scratch的“侦测”指令面板中,提供“询问…并等待”积木和“回答”积木用于实现基于键盘的人机交互功能。参照其他编程语言,问答指令可以归为基本输入指令。

2.2.1 跟我做:简单的人机对话

使用Scratch的问答指令积木,很容易实现友好直观的人机交互功能。在本案例中,我们将与可爱的小猫进行简单对话,具体步骤如下。

(1)在Scratch编辑器的文件菜单中选择“新建项目”命令,就会建立一个新的项目,即默认的白色背景和小猫角色。

(2)从“事件”指令面板中将“当被点击”指令积木拖动到小猫角色的脚本区。

(3)切换到“侦测”指令面板,将“询问…并等待”指令积木拖动到脚本区,并拼接在“当被点击”指令积木之下,再将“询问…并等待”指令积木的文本框中的内容修改为“请问你叫什么名字?”。

图2-2-2 “简单的人机对话”脚本清单

(4)从“外观”指令面板中拖动一个“说…”指令积木到脚本区,拼接在“询问…并等待”指令积木之后。然后,切换到“运算”指令面板,拖动一个“连接…和…”指令积木放入“说…”指令积木的文本框中。最后,将“连接…和…”指令积木的第一个文本框的内容修改为“你好,”,并在它的第二个文本框中放入一个“回答”指令积木。

至此,这个案例程序编写完毕,脚本清单如图2-2-2所示。单击按钮运行项目,就可以开始对这个脚本进行测试。

2.2.2 询问与回答

在Scratch的“侦测”指令面板中的“询问…并等待”指令积木和“回答”指令积木需要配合使用,为Scratch项目提供基本的输入功能。在创作需要交互功能的故事、游戏等类型的项目时,能够让用户通过键盘输入姓名、答案或其他信息,与舞台上的角色进行互动,从而创作出各种生动有趣的项目。

在角色的脚本中使用“询问…并等待”指令积木时,根据角色是显示状态还是隐藏状态,询问对话框会呈现不同的形式。如图2-2-3所示,当角色是显示状态,则会以说话气泡框的形式呈现询问的内容,并在舞台的下方显示一个文本输入框;如果角色是隐藏状态,则询问对话框中的内容将会作为舞台下方文本输入框的提示信息显示。另外,在舞台的脚本中使用询问对话框时,呈现的也是如图2-2-3中右边的对话框样式。

图2-2-3 询问对话框的呈现形式

当用户通过键盘输入信息并按下回车键或者是单击“确认”按钮之后,询问对话框将会消失,而用户输入的信息将会被存储在“回答”积木中。需要说明的是,当下一次使用“询问…并等待”积木时,“回答”积木中的数据就会被新输入的信息覆盖。因此,需要在脚本中使用一个变量来保存“回答”积木中的数据,以便在脚本中其他地方使用。

2.2.3 动手练:说出字母数

1.练习重点

问答指令积木的使用。

2.问题描述

小猫真聪明,你只要给出任意一个英文单词,它就能说出这个单词的字母数。

请使用问答指令积木编写程序实现这个功能。

3.解题分析

(1)使用“询问”指令积木让小猫角色向用户询问:“你说英文单词,我来说字母数,开始吧。”

(2)在用户输入一个英文单词并确认后,通过“回答”指令积木取得用户输入的单词。

(3)使用“运算”指令面板中“…的长度”指令积木求得单词的字母数。

4.练习内容

(1)查看“运算”指令面板中“…的长度”指令积木的说明文档,了解它的使用方法。

(2)把图2-2-4所示的程序脚本中的空白积木替换为真实积木。

图2-2-4 “说出字母数”空白脚本