From Test-Scratch-Wiki

Translate: - English - 中文 
Say ()
說出 [Hello World]
类别 外观类积木
形狀 条形积木

说出 () 积木,原文为 Say (),是个外观类条形积木。这个积木会给使用它的角色显示一个谈话泡泡,内容可以指定 — 对话泡泡会持续显示到另一个说出或想着积木被激活,或是停止标志被按下。这个积木和 想着 () 大致相同,差别只是在显示的样式,一个显示的是谈话泡泡,一个是思考泡泡。这个积木在被激活后会立即执行下一个积木指令,这是和 说出 () () 秒 积木不同的地方,这种机制与 播放音效 积木很类似。

用法示例

Scratch 喵咪正在说 Hello!,用的就是说出积木。

因为积木被设定成永久显示谈话泡泡(见常见错误以瞭解如何停止说出),当无法明确指定谈话泡泡显示的时间时,就很常使用这个积木,例如一个被触发的事件或是状态。

一些常见用法有:

  • 总是发出声音的东西
說出 [Buzz... Bzz...]
  • 一种指示标志或是图像
說出 [<-- Dragon  {}  Bank -->]
  • 反正就是不想要消失的讯息
說出 [I am the forever sign. Age has worn my wood so much...]
  • 当空白键被按下时会显示的另一个内容
當 @greenflag 被點擊
說出 [世界最远的距离不是生与死,而是什么?(按下空白键看解答)]
等待直到 <[空白 v] 鍵被按下?>
說出 [我就站在你面前,你却不知道我爱你!]
  • 一个结束讯息(例如「你赢了!」或「发表你的感言!」)
當 @greenflag 被點擊
等待直到 <(score) > (9)> //score 意指分数
說出 [干得好!你以满分 10 分过关了!]
  • 浏览者可以自定观看时间的讯息
當 @greenflag 被點擊
詢問 [你希望我说出圆周率π多长的时间?] 並等待
說出 [3.14159265358979323846264338327950288...]
等待 (詢問的答案) 秒
說出 []
  • 不定时间长度的谈话(像是等待浏览者下达指令)
當 @greenflag 被點擊
說出 [按下空白键以继续!]
等待直到 <[空白 v] 鍵被按下?>
廣播訊息 [continue v] //continue 意指继续
說出 []

常见错误

说出积木常常被误以为是在程式结束时或是移到下个积木指令时就会自己停止,事实上,使用积木的角色会持续不断的说话,直到下一个说出积木或是思考积木被激活。如果要让角色停止说出某个内容,就必须要再说出一个空白的内容,这样才能触发谈话泡泡,并利用空白内容的方法来隐藏泡泡,让角色看起来像是停止说话。

Warning 注意: 启动或是停下专案才会让角色真正停止所有的说话。

下方的程式是个例子,角色说出内容,持续一段时间,接着再停止该内容。

當 @greenflag 被點擊
說出 [看我旋转吧!]
重複 (隨機取數 (90) 到 (110)) 次 
  右轉 @turnright (4) 度
end
說出 []

在另一个写法可以比较出差别:

當 @greenflag 被點擊
說出 [看我旋转吧!] (2) 秒
重複 (隨機取數 (90) 到 (110)) 次 
  右轉 @turnright (4) 度
end

这个程式会在执行下一个指令前等待 2 秒,指定时间过后就会停止说出。

用来除错

说出积木在专案中非常有用,它可以拿来监控值的变化。你可以把它放到 重复无限次 积木里头,像是:

重複無限次 
  說出 ((var1) + ((var2) * (var3))) //var 意指变量
end

参见