資訊內(nèi)容
Scratch運(yùn)動(dòng)積木詳解(更新到Scratch 3.0新版)
(輕松關(guān)注,點(diǎn)擊?↑藍(lán)字。查看歷史文章,收獲最新資訊)
文章創(chuàng)建:2018-06-15,最后修改:2019-08-11
外觀積木讓角色的外形變得豐富,借助它們女主角已經(jīng)能夠衣著華麗地站在舞臺(tái)上,不過(guò),詭異的是她在那里像個(gè)木頭人一動(dòng)不動(dòng),臺(tái)下觀眾看得一臉尷尬。本文就是要讓角色“動(dòng)起來(lái)”。
“運(yùn)動(dòng)”積木賦予角色移動(dòng)和轉(zhuǎn)動(dòng)的能力,看似簡(jiǎn)單無(wú)奇的兩個(gè)動(dòng)作經(jīng)過(guò)靈活的組合,能夠?qū)崿F(xiàn)意想不到的效果。
01 坐標(biāo)
Scratch中通過(guò)“坐標(biāo)”來(lái)定義角色、鼠標(biāo)等任何事物的位置。
坐標(biāo)系的水平方向是X軸,豎直方向是Y軸。坐標(biāo)系的單位是“步”,它將在下文03中用到。
以上四個(gè)積木就是直接修改或增量修改角色的坐標(biāo),來(lái)實(shí)現(xiàn)角色移動(dòng)的。注意觀察下圖,正值表示在坐標(biāo)軸上正向運(yùn)動(dòng),負(fù)值表示在坐標(biāo)軸上反向運(yùn)動(dòng)。
另外,觀察紅圈標(biāo)注的位置,它們實(shí)時(shí)顯示了角色的當(dāng)前坐標(biāo)。如果你將角色拖動(dòng)到舞臺(tái)的四個(gè)角,就能得到邊界的坐標(biāo)是(X:-240,Y:180),(X:240,Y:180),(X:-240,Y:-180),(X:240,Y:-180);如果你將角色拖動(dòng)到中心點(diǎn),就會(huì)得到舞臺(tái)中心是(X:0,Y:0)。
在介紹舞臺(tái)時(shí),還會(huì)提到關(guān)于坐標(biāo)系的知識(shí)。
02 方向
角色有面向某個(gè)方位的屬性,這在現(xiàn)實(shí)生活中也很常見(jiàn),比如,小明在十字路口給約會(huì)的朋友打電話,“我現(xiàn)在面對(duì)著招商銀行,銀行的大門是面向西開(kāi)的,你來(lái)找我吧”。
我們用積木翻譯上面的話:
-
角色(我),?[面向? 銀行 ]?
-
角色(銀行),?[面向??西??方向]?
第1條,面向后面跟的是另外一個(gè)角色,在Scratch中如下。需要注意的是,除了角色,選項(xiàng)還可以是“鼠標(biāo)指針”。
第2條,面向后面跟的是方向,在Scratch的平面舞臺(tái)上可沒(méi)有“東西南北”,只能用度數(shù)表示方向。在Scratch 2.0中,這個(gè)積木還提供默認(rèn)的“上下左右”四個(gè)選項(xiàng),而在新版中,因?yàn)榧尤肓诵碌哪M“指針”操作方式,所以去掉了四個(gè)最常用的選項(xiàng)。不過(guò),對(duì)于新方式是否優(yōu)于老的操作方式,我保留意見(jiàn)。
我們嘗試下,
除了上面這些,關(guān)于旋轉(zhuǎn)還有兩個(gè)要點(diǎn)需要知曉:
-
角色初始面向是“(90)向右”,也可以理解成,角色“造型”區(qū)域看到的形象就是默認(rèn)面向,此時(shí)角色的右側(cè)就是角色的朝向,無(wú)論程序中角色被旋轉(zhuǎn)了多少角度,這個(gè)“右側(cè)”都是角色的“當(dāng)前”朝向。千萬(wàn)不要把角色的“臉孔”理解成角色的朝向!
-
角色是繞著自己的中心點(diǎn)旋轉(zhuǎn)的。上篇外觀積木提到了中心點(diǎn),現(xiàn)在仍然不深究,留到后面講解。
03?旋轉(zhuǎn)
這兩個(gè)積木可以實(shí)現(xiàn)角色的旋轉(zhuǎn),不管當(dāng)前角色面向什么方向,都會(huì)在當(dāng)前面向的基礎(chǔ)上左轉(zhuǎn)或右轉(zhuǎn)。
其實(shí),上文02的積木雖然是用來(lái)設(shè)置角色面向(朝向)的,但是通過(guò)不斷修改??[面向??N??方向]??中的N,也能實(shí)現(xiàn)旋轉(zhuǎn)的效果,只是可能用起來(lái)比較的繁瑣。
下面的例子演示在默認(rèn)面向時(shí)旋轉(zhuǎn),然后修改面向朝下,再旋轉(zhuǎn)。
04?移動(dòng)
角色從當(dāng)前位置、當(dāng)前面向,移動(dòng)到特定的位置。
-
第一個(gè)積木:向當(dāng)前面向移動(dòng)N步。“步”,就是01中說(shuō)的坐標(biāo)系單位。那么,角色從舞臺(tái)中心是(X:0,Y:0)往右移動(dòng)的話,最大只能移動(dòng)240步,因?yàn)樽鴺?biāo)系邊界是(X:240,Y:0)。
-
第二個(gè)積木:立即移動(dòng)到除自身以外的某個(gè)角色、鼠標(biāo)指針或者任意位置
-
第三個(gè)積木:在第二個(gè)積木的基礎(chǔ)上增加一個(gè)移動(dòng)耗時(shí),角色就像是一步步走過(guò)去的,不再瞬移
-
第四個(gè)積木:立即移動(dòng)到指定坐標(biāo)(X:__,Y:__),角色就像突然消失并且出現(xiàn)在另一個(gè)地方
-
:立即移動(dòng)到指定坐標(biāo)(X:__,Y:__),角色就像突然消失并且出現(xiàn)在另一個(gè)地方
-
第五個(gè)積木:在第四個(gè)積木的基礎(chǔ)上增加一個(gè)移動(dòng)耗時(shí),角色就像是一步步走過(guò)去的,不再瞬移。原理和第三個(gè)積木類似
05?碰到邊緣
舞臺(tái)的寬和高都是有限的,于是,需要明確當(dāng)角色已經(jīng)運(yùn)動(dòng)到邊緣時(shí),后續(xù)應(yīng)該怎樣運(yùn)動(dòng)。
這類積木只有2個(gè),一個(gè)是確定“碰到邊緣就反彈”,另一個(gè)則是設(shè)置反彈時(shí)的旋轉(zhuǎn)方式。
下面的例子先演示不使用“碰到邊緣”積木的情形,小貓碰到邊界后仍在試圖移動(dòng),只是已經(jīng)無(wú)法移動(dòng)而已;然后增加“碰到邊緣就反彈”積木,并且分別嘗試三種旋轉(zhuǎn)模式。
實(shí)例可以看出,旋轉(zhuǎn)模式“任意”的命名很不貼切,它的實(shí)際含義是,當(dāng)碰到上/下邊緣時(shí)采取“上-下旋轉(zhuǎn)”。
06?運(yùn)動(dòng)參數(shù)積木
外觀類積木中已經(jīng)提到這種類型的積木,不贅述。
運(yùn)動(dòng)積木中的面向和坐標(biāo)系是很重要但又不易理解的內(nèi)容,后續(xù)的文章還會(huì)多次講解來(lái)增進(jìn)理解。
tag:#Scratch編程、#少兒編程、#兒童編程、#趣味編程、#青少年編程、#軟件編程
例行備注:微信限制已發(fā)布文章的修改,欲查看最近更新后的文章可以通過(guò)公眾號(hào)底部的菜單。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除
