知:“文字朗读”还能做什么?
如果你已经完成了《单词复习器》,留意了 Scratch 的“文字朗读”扩展指令,就会发现它真的很强大!它不仅能朗读单词,还能朗读句子;不仅支持英语,还支持汉语等各种世界通行的语言!更妙的是它还能模拟不同的声音!这样的话你马上会想到,其它可以用它做一个英语会话练习的程序,让它把课文上的内容“读”给我们听,而且是分角色朗读,是不是很妙?
思:程序设计
要完成本程序,我们可以建立一个列表存储会话内容(注意是轮流存储的内容,即角色A一句、角色B一句,不能打乱顺序),程序启动的时候用一个循环来访问列表,奇数项让角色A朗读,偶数项让角色B朗读,让它们使用不同的发音,对话就很自然了!
注意:由于网络原因,“文字朗读”积木可能无法正常工作,这种情况下,可以自己制作音效素材,通过录音的方式将每句话的读音保存到Scratch中,将本文中的文本朗读积木改成播放积木即可。
程序角色设计如下:
行:编程实现
1、新建 Scratch 项目,选择一个城市的背景(Metro),从角色库导入你喜欢的两个人物角色和一个Button2按钮,人物角色你可以选择自己喜欢的,这里我导入的是一个男孩(Dee)和一个女孩(Abby),修改一下女孩的方向,让她面向男孩,按钮放在舞台右下角,在按钮上加上文字“Start”(意思是开始)即可:
2、新建一个列表“Lesson”作为数据源,你可以使用导入功能将整理好的会话(文本文件,一行一句)导入进来,如果列表内容少,也可以直接在列表上点“+”号添加:
3、添加“序号”、“内容”两个变量,为“Start”按钮添加代码,循环获取列表项,将“内容”设置为列表项的值,然后根据序号确定给角色A或角色B发消息:
4、为角色1、角色2编写代码,它们的逻辑是相似的,收到属于自己的消息后,用不同的声音朗读“内容”变量,同时“说”出内容。为了让画面更生动,我们让他们在说话的时候切换造型:
5、程序完成!
悟:总结与拓展
本节程序的实现体现了一种“控制器”的设计思路。如果我们不采用控制器思路,最有可能的实现方式是让男孩、女孩这两个角色分别去取列表内容,这个时候可能会面临两个角色的同步问题,因为只有一个角色说完才能轮到下一个角色,你可能会想到让其中一方说话时,另一方等待特定的秒数——这样也可以,但会存在有些句子长、有些句子短,等待固定的时间会让对话有些不自然。如果采用两个角色之间互相发消息呢?也很容易被消息发送弄得晕头转向——最好的方法还是像本节所讲的内容那样,由一个“控制器”来协调两个角色的互动。这个控制器就像一个“导演”,由他发号施令,轮到哪个角色就让哪个角色说话,程序结构清晰,也不会出现等待时间不自然的情况。
学会本节,你可以从你的英语课本中选择一篇课文,把它变成动画程序!你只需要先清空列表“Lesson”的内容,然后重新输入或导入课文内容即可!