02 角色的基礎:“運動”“外觀”“聲音”子產品
從這一章開始,我們會分子產品講解Scratch中的積木塊。“運動”“外觀”“聲音”這三個子產品是直接針對角色和舞台背景變化的子產品,也是Scratch中使用頻率較高的子產品。
2.1“運動”子產品:讓角色更生動
在Scratch中,要想讓舞台上的角色動起來,需要使用“運動”子產品中的積木塊。角色的運動方式包括角色的移動、方向和旋轉,其中角色的移動又分為絕對移動和相對移動兩類。下面将詳細介紹這幾種運動方式。
2.1.1角色的絕對移動
在Scratch中,角色的絕對移動是通過指定坐标來完成的。在上一章中提到了,舞台處在一個長480步、寬360步(每1個機關就是1步)的坐标系下,舞台上所有的位置都有一個對應的坐标。以初始角色“角色1”(小貓)為例,建立新項目後,小貓位于舞台的正中央,此時坐标為(0,0),然後用滑鼠将小貓拖動到舞台的其他位置,如下圖所示,在角色清單的“x”和“y”框中可觀察到坐标值的變化。下面分類介紹“運動”子產品中的相關積木塊。

類型 1
分别設定角色的x坐标值和y坐标值。有兩個積木塊能實作這一效果。為位于原點的小貓添加“将x坐标設為(100)”積木塊,可以看到小貓的坐标變為(100,0),如下左圖所示。讓小貓回到原點,删除已添加的積木塊,再添加“将y坐标設為(100)”積木塊,可以看到小貓的坐标變為(0,100),如下右圖所示。
類型 2
同時設定角色的x坐标值和y坐标值。為小貓添加“移到x:(-100)
y:(-100)”積木塊後,小貓的位置瞬間發生了變化,如下左圖所示。為小貓添加“在(1)秒内滑行到x:(-100)y:(-100)”積木塊後,小貓的位置同樣會發生變化,與前一積木塊的差別在于,這是一個人眼可見的動态過程,如下右圖所示。通過修改秒數,可以控制移動過程所持續時間的長短。
小提示
如果要随意指定角色的坐标值,可以使用“移到(随機位置)”積木塊和“在(1)秒内滑行到(随機位置)”積木塊。兩者的差別和類型2中兩個積木塊的差別相同:前者實作的移動過程是瞬間完成的,人眼幾乎無法察覺,如下左圖所示;後者實作的則是一個人眼可見的動态過程,并且這一過程持續的時間是可以調控的,如下右圖所示。
類型 3
在舞台上顯示角色的x坐标值和y坐标值。除了讓角色移動以外,還可以實時顯示角色的x、y坐标值。在“運動”子產品中勾選“x坐标”和“y坐标”積木塊前面的複選框,如下左圖所示,就能在舞台中實時顯示角色的x、y坐标值,如下右圖所示。
2.1.2角色的相對移動
角色的相對移動是指以角色原來的位置為起點,通過指定移動的步數來實作角色的移動。下面分類介紹相關的積木塊。
直接設定移動步數。是指讓角色從原來的位置向着面朝方向移動指定的步數。為小貓添加“移動(100)步”積木塊,由于小貓預設面朝右方,是以小貓從原來的位置向右移動了100步,如右圖所示。
設定相對坐标。是指通過分别增加x、y坐标值讓角色移動到某個位置上。為小貓添加“将x坐标增加(100)”和“将y坐标增加(100)”積木塊後,小貓從原來的位置分别向x和y的正值方向移動了100步,如右圖所示。
2.1.3角色的方向
在“運動”子產品中,涉及角色方向變化的積木塊有“面向(90)方向”和“面向(滑鼠指針)”。這兩個積木塊都可以直接讓角色的方向發生變化。
角色的方向指的是角色的面朝方向。以初始角色小貓為例,在建立新項目後,小貓面朝的方向是右方,對應的角度為90°,如下左圖所示。在“運動”子產品中,“面向(90)方向”積木塊就代表了角色的面朝方向,可以通過更改積木塊中的數字或在彈出的圓盤中拖動指針來控制角色的面朝方向,如下右圖所示。
将“面向(90)方向”積木塊中的數字更改為“135”,更改後小貓的面朝方向發生了變化,如下圖所示。
若為小貓添加“面向(滑鼠指針)”積木塊,如下左圖所示,則在舞台中,小貓的面朝方向會随着滑鼠指針的移動而變換,如下右圖所示。
2.1.4角色的旋轉
生活中,我們會經常看到旋轉的風車、齒輪之類的物品。旋轉也是角色運動的一種方式,通常是角色圍繞着某一個點或某一根軸旋轉。在Scratch中,角色旋轉的方式有兩種:一種是繞中心點旋轉,另一種是鏡像翻轉。下面分别講解。
繞中心點旋轉。為小貓添加“右轉(15)度”積木塊,并且修改框中的數字為“45”,單擊積木塊後,小貓繞中心點向右(順時針)旋轉了45°,如下左圖所示;然後讓小貓恢複原狀,再為其添加“左轉(15)度”積木塊,并且修改框中的數字為“45”,單擊積木塊後,小貓繞中心點向左(逆時針)旋轉了45°,如下右圖所示。
鏡像翻轉。當角色運動到舞台邊緣時,若要讓角色“回頭”,就要用到“碰到邊緣就反彈”積木塊,這裡的“反彈”用到的旋轉方式便是鏡像翻轉。鏡像翻轉也有兩種情況:一種是正向鏡像翻轉,另一種是反向鏡像翻轉。在Scratch中,正向鏡像翻轉被稱為“左右翻轉”,而反向鏡像翻轉被稱為“任意旋轉”,現在來看看效果,如下圖所示。
旋轉實作的是運動的一個過程,而不是一個結果。
試一試
如右圖所示的腳本能讓小貓在舞台上沿着華麗的曲線運動。自己動手操作一下,看看會有怎樣的效果吧。
2.2“外觀”子產品:讓角色更形象
要讓角色在舞台上更形象,就需要讓角色産生更多變化,此時就要用到“外觀”子產品。“外觀”子產品的功能主要有五個方面:切換角色的造型;改變角色的大小;讓角色看起來像在思考或說話;為角色的外觀添加特效;調整角色在舞台上的顯示層次。
2.2.1造型的切換
造型切換是角色能夠生動地展示在舞台上的秘訣之一。通過不斷切換造型,可以讓角色呈現動态效果。
下面以角色庫中的“Shark 2”(鲨魚)作為示例,來看看角色的造型是如何切換的。将角色庫中的“Shark 2”角色添加到角色清單,再單擊“造型”标簽,如下左圖所示,切換至“造型”頁籤,在左側的造型清單中可以看到“Shark 2”角色所有造型的縮略圖,如下右圖所示。
使用“下一個造型”積木塊後,鲨魚角色會切換為造型清單中目前造型之後的一個造型,如下左圖所示;使用“換成(shark2-c)造型”積木塊後,鲨魚角色會直接切換為指定的“shark2-c”造型,如下右圖所示。
2.2.2大小的變化
在Scratch中,除了在角色清單中修改角色的大小,還可以通過添加“将大小增加()”積木塊或“将大小設為()”積木塊來修改角色的大小。“将大小增加()”積木塊可将角色大小在原來的大小基礎上增減指定的數值,“将大小設為()”積木塊則可将角色大小變為指定的數值。下面以初始角色小貓為例,來看看這兩個積木塊實作的效果。
添加積木塊之前,小貓的大小為100%。使用“将大小增加(50)”積木塊後,小貓的大小會從100%變為150%(100%+50%=150%),如下左圖所示;使用
“将大小設為(50)”積木塊後,小貓的大小會從100%變為50%,如下右圖所示。
2.2.3思考和說話
現在角色已經能夠在舞台上自由地切換造型和改變大小了,但是角色的外觀不隻是切換造型和改變大小,我們還可以讓它看起來像在思考和說話,這樣會讓角色顯得更有生機。下面還是用小貓來展示角色思考和說話的效果。
“思考()”和“思考()()秒”這兩個積木塊可讓角色顯示指定的思考内容,思考的内容以浮雲框的形式展示,“思考()()秒”積木塊還會對浮雲框顯示的時間進行限制。為小貓添加“思考(嗯……)”積木塊,單擊積木塊之後,小貓的右上角會出現一個浮雲框,浮雲框中顯示的“嗯……”就是小貓思考的内容,如下左圖所示;重新給小貓添加“思考(嗯……)(2)秒”積木塊,單
擊積木塊之後,小貓的右上角也會出現一個浮雲框,如下右圖所示,但是浮雲框顯示2秒之後便會消失。
“說()”和“說()()秒”這兩個積木塊可讓角色顯示指定的說話内容,說話的内容以氣泡框的形式展示,“說()()秒”積木塊還會對氣泡框顯示的時間進行限制。為小貓添加“說(你好!)”積木塊,單擊積木塊之後,小貓的右上角會出現一個氣泡框,氣泡框中顯示的“你好!”就是小貓說話的内容,如下左圖所示;重新給小貓添加“說(你好!)(2)秒”積木塊,單擊積木塊之後,小貓的右上角也會出現一個氣泡框,如下右圖所示,但是氣泡框顯示2秒之後便會消失。
如下圖所示的兩段腳本能讓小貓和小企鵝兩個角色之間進行一番對話。
2.2.4角色的特效
角色的特效是指給角色的外觀添加一些特殊的修飾,如下圖所示。
這裡的數值與角色大小的數值是一樣的,都是百分數。
2.2.5角色的圖層
通俗地講,Scratch中的圖層就像是含有角色或背景等元素的透明膠片,一張張疊放在一起,形成最終的舞台效果。圖層疊放的順序不同,會得到不同的舞台效果。下面通過一個例子來幫助了解吧。
保留預設的小貓角色,然後添加新的角色“Fish”(魚)和“Lion”(獅子),如下圖所示。可以清楚地看到,在舞台上,魚遮住了小貓的一部分,而獅子又遮住了魚的一部分,是以,獅子的圖層在最上面,魚的圖層在中間,而小貓的圖層在最下面。
為小貓添加“移到最(前面)”積木塊,單擊積木塊之後,小貓會移動到所有角色的最上面,如下左圖所示;現在讓小貓恢複原狀,然後添加“(前移)(1)層”積木塊,單擊積木塊之後,小貓會移動到魚的上面,把魚遮住一部分,但小貓還是會被獅子遮住一部分,如下右圖所示。
2.3“聲音”子產品:讓角色更有活力
“聲音”子產品也是項目修飾中一個不可或缺的成分,它可以增加項目的互動性、體驗性及生動性。無論是角色還是背景,添加了聲音之後,都會更加生動和活躍。給角色或背景添加聲音後,還可以修改聲音的音效及音量。
2.3.1角色的聲音
可以添加Scratch自帶聲音庫中的聲音,如下圖所示,也可以将外部音效
上傳到項目中,還可以自己錄制聲音。
2.3.2音調和音量的差別
在“聲音”子產品中,“音調”和“音量”是有差別的。“音調”主要由聲音的頻率決定,同時也與聲音的強度有關,表示人的聽覺分辨一個聲音的調子高低的程度;“音量”又稱響度、音強,是指人耳對所聽到聲音的大小、強弱的主觀感受。
通過如下圖所示的兩段腳本來感受一下音調和音量的差別。
2.4熱鬧的森林
下面來編寫一個綜合性較強的案例。這個案例要運用本章所介紹的“運動” “外觀” “聲音”子產品中的多個積木塊,以森林作為背景,有不同的動物在自由地活動,并發出歡快的聲音。
執行個體檔案:執行個體檔案第2章:熱鬧的森林.sb3
步驟 01
選擇Scratch自帶背景庫中的“Forest”(森林)作為舞台背景。單擊“選擇一個背景”按鈕,如右圖所示,在彈出的界面中單擊“Forest”背景素材,如下圖所示。
步驟 02
添加Scratch自帶角色庫中的“Grasshopper”(蚱蜢)角色。單擊“選擇一個角色”按鈕,如右圖所示,在彈出的界面中,先在頂端單擊“動物”分類,然後在下方單擊選擇“Grasshopper”(蚱蜢)角色,如下圖所示,将其添加到角色清單中。
步驟 03
添加好角色之後,先删除初始角色“角色1”(小貓),如下左圖所示,然後修改“Grasshopper”角色名稱為“蚱蜢”,修改角色大小為“30”,如下右圖所示。
步驟 04
修改蚱蜢坐标值為(-160,-140),使它位于舞台的左下角,看起來就像是趴在草地上一樣,如下圖所示。
步驟 05
接着要讓蚱蜢在舞台上反複不停地左右移動,并且在觸碰到舞台邊緣後能夠回頭繼續移動,這就需要為蚱蜢添加如下圖所示的腳本。
步驟 06
現在要讓蚱蜢在移動的同時變換自己的外形,讓其更靈動一些。在“将旋轉方式設為(左右翻轉)”積木塊的下方添加“等待()秒”積木塊(位于“控制”子產品)和“下一個造型”積木塊,在輸入框中輸入“0.2”,讓造型變化的速度稍快一些,符合蚱蜢的特性,如下圖所示。
步驟 07
現在要讓蚱蜢在移動的同時發出聲音。展開“聲音”頁籤,将滑鼠指針移至下方的“選擇一個聲音”圖示上,在彈出的清單中單擊“選擇一個聲音”按鈕,如右圖所示。在彈出的界面頂端單擊“動物”分類,然後在下方選擇“Crickets”(蟲鳴)聲音,如下圖所示。
步驟 08
傳回“代碼”頁籤,如下左圖所示,現在要讓蚱蜢能夠一邊移動一邊發出聲音,在“下一個造型”積木塊下方添加“聲音”子產品下的“播放聲音(Crickets)”積木塊,如下右圖所示。蚱蜢的腳本就寫好了。
步驟 09
還可以添加一些其他動物,下面依次給出這些角色的基本資訊,包括大小和坐标,以及每個角色的腳本。首先是蝴蝶,大小設為“50”,坐标設為(50,100),如右圖所示;腳本和蚱蜢類似,修改每次移動的步數為“1”,并且去掉播放聲音的積木塊,如下圖所示。
步驟 10
接下來是獅子,大小保持不變,坐标設為(110,-20),如下圖所示;腳本和蝴蝶類似,修改每次移動的步數為“3”,如右圖所示。
步驟 11
接着是瓢蟲,大小設為“50”,坐标設為(-160,-140),如下圖所示;腳本和蚱蜢類似,修改每次移動的步數為“1”,并且修改播放的聲音為“Chirp”,如右圖所示。
步驟 12
然後是蛇,大小設為“60”,坐标設為(-130,-30),如下圖所示;腳本和蝴蝶類似,修改每次移動的步數為“2”,如右圖所示。
步驟 13
最後是鹦鹉,大小設為“60”,坐标設為(-130,70),如下圖所示;腳本和蚱蜢類似,修改播放的聲音為“Bird”,如右圖所示。
步驟 14
單擊
運作程式,熱鬧的森林場景就呈現出來了,如下圖所示。