資訊內(nèi)容
【Scratch】簡(jiǎn)單的“魚(yú)缸”,讓你理清編程“對(duì)象”關(guān)系。
學(xué)會(huì)STEM怎么“玩”,或許才是真正的意義。
更多學(xué)習(xí)內(nèi)容,關(guān)注公眾號(hào)后,通過(guò)菜單獲取。
第200篇文章
老丁的課程
經(jīng)過(guò)上周的課程,想必大家已經(jīng)大概了解Scratch的玩法啦。
是的,STEAM的學(xué)習(xí)很多時(shí)候要靠方法來(lái)學(xué),而不是死記硬背。
學(xué)會(huì)方法后就需要通過(guò)一個(gè)個(gè)案例的練習(xí),可以是老丁給的,也可以是自己想的,也可以是外面偶爾看到的。這樣一步步,就能鍛煉出編程思維。
編程思維,接單說(shuō),就是分析和解決問(wèn)題的步驟。
計(jì)算機(jī)不會(huì)去幫你思考如何解決問(wèn)題,它只能做到:
提出問(wèn)題(人提出的)并思考解決方案,編程 —— 解決問(wèn)題(人解決的)
這個(gè)過(guò)程中“——”的部分,即:替代人進(jìn)行復(fù)雜的各種計(jì)算。
所以,我們要做的“編程”,其實(shí)本質(zhì)就是“教會(huì)計(jì)算機(jī)如何處理問(wèn)題并給出一個(gè)結(jié)果”。
換句話說(shuō),要學(xué)會(huì)做老師,手把手的指導(dǎo)一個(gè)“傻子”做事情……
這話一點(diǎn)都不夸張哈!~
今天,我們主要就講跟“對(duì)象”有關(guān)的操作。
告訴這個(gè)“傻子”怎么達(dá)到我們想要的結(jié)果。
課題:簡(jiǎn)易魚(yú)缸
先要分析一下這個(gè)作品的相關(guān)需求。
1、背景:要是一個(gè)水的環(huán)境,用來(lái)模擬金魚(yú)缸的環(huán)境。
2、魚(yú)(3~4):多要放幾條,能夠自由移動(dòng)。并且不會(huì)跑到“缸”外面。
不難吧~
經(jīng)過(guò)分析,我們可以看到,這里面有4~5個(gè)對(duì)象。
對(duì)象一:背景
對(duì)象其他:魚(yú)
所以,首先做這個(gè)程序的時(shí)候,我們可以先把對(duì)象都添加進(jìn)去。
右下角這兩個(gè)按鈕,可以分別添加“角色”和“背景”
?
我們點(diǎn)擊進(jìn)入后,挑選自己想要的角色即可哦。
先添加一個(gè)背景和四條魚(yú)吧。
現(xiàn)在的魚(yú)都是一樣的對(duì)不對(duì)?
這里,要注意,我們指的一個(gè)“對(duì)象”是指針對(duì)一個(gè)完整的對(duì)象,而不能理解為針對(duì)了某一個(gè)造型。
舉個(gè)例子,我們的電視劇里面有男主角。
男主角就是一個(gè)“對(duì)象”,也就是一個(gè)人物。而人物本身可以是由多個(gè)人飾演的,比如童年、少年、青年、中年、老年。
很明顯,這個(gè)“對(duì)象”的造型可以是多樣的。并且在不同的時(shí)候,可以切換這個(gè)造型。比如:男主角到了老年,回想起童年時(shí)候的記憶。這個(gè)時(shí)候,畫(huà)面就會(huì)從老年變?yōu)檫@個(gè)對(duì)象的童年。
放到編程里面去理解,就是:
在一些條件下,“對(duì)象”可以自由的切換其造型和其他的各種設(shè)置。
所以,我們點(diǎn)擊任何一個(gè)“角色”,再進(jìn)入“角色造型”卡片里面,就可以對(duì)這個(gè)角色進(jìn)行一些造型上的修改。(以后,也可以讓程序自動(dòng)來(lái)切換設(shè)定好的造型哦!)
重復(fù)這些步驟,就可以把魚(yú)變成不同的造型!
好,我們開(kāi)始正式的“代碼”編程。
首先來(lái)做背景,在一個(gè)水環(huán)境下,我們的背景應(yīng)該有個(gè)音效嘛,咕嚕咕嚕冒氣泡吧!
選中“背景”(注意,我們要對(duì)任何一個(gè)“對(duì)象”編程,都要先選中這個(gè)對(duì)象!這是小朋友們經(jīng)常忘掉的事情……不然你對(duì)誰(shuí)編程啊?!)
如果我們需要添加一個(gè)音效,可以選中背景后點(diǎn)“聲音卡片”。這里,你可以找到各種聲音,當(dāng)然,你也可以錄制上傳一些自己想要的音樂(lè)或音效。
進(jìn)入代碼編寫(xiě),我們首先要設(shè)定出程序的啟動(dòng)鍵。由于一個(gè)水環(huán)境里面,冒泡泡的聲音肯定是沒(méi)有固定規(guī)律的,所以,我們要讓它隨機(jī)發(fā)聲~
老丁給的都是參考,大家可以自行在左側(cè)的代碼卡片里面去尋找相應(yīng)的代碼進(jìn)行嘗試。
讓這個(gè)背景音重復(fù)執(zhí)行,每次隨機(jī)等待1~3秒。這樣一個(gè)水環(huán)境的背景音效就完成了!
接下來(lái),我們來(lái)對(duì)“魚(yú)”們,進(jìn)行編程。
魚(yú)嘛,當(dāng)然是隨機(jī)游動(dòng)的。而且它們的游動(dòng)速度可能是不同的,方向可能是不同的,也不能游出魚(yú)缸……
那么,其實(shí)上面藍(lán)字這些,就是我們對(duì)魚(yú)的初步要求啦,對(duì)么?
所以,我們還是先選中其中的一條魚(yú)。
設(shè)置跟“背景”一樣的開(kāi)始條件(如果有不一樣的要求,可以自己設(shè)定成不一樣的哦!)
首先重復(fù)執(zhí)行,移動(dòng)一個(gè)步數(shù)。
這里的步數(shù),其實(shí)代表了魚(yú)游的速度,你可以自己設(shè)置,數(shù)值越高,游的越快。
一直這樣游,當(dāng)然是會(huì)游出魚(yú)缸(舞臺(tái))的!
所以,我們可以設(shè)定一個(gè)“布爾運(yùn)算”的判斷流程:
當(dāng)“碰到舞臺(tái)邊緣”那么……干嘛?
那么當(dāng)然是反彈咯!反彈,就是指,方向相反。
那如果,我們要個(gè)隨機(jī)的方向繼續(xù)游呢?
可以加入一個(gè)隨機(jī)的方向,讓它在碰到“魚(yú)缸”邊緣時(shí),自己重新找個(gè)方向去游。
這樣,就不會(huì)看上去,呆若木魚(yú)了……
好了,這樣,一條魚(yú)就搞定了,我們可以把串代碼復(fù)制給其他的魚(yú)。然后重新設(shè)定一下速度就可以了!
當(dāng)然,你還可以通過(guò)一些參數(shù)的變化,優(yōu)化一下這個(gè)魚(yú)缸小程序。
今天這節(jié)課,主要是針對(duì)“對(duì)象”操作的練習(xí)和理解。
“對(duì)象”關(guān)系,再結(jié)合上面兩節(jié)課的“理解”和“代碼分類(lèi)”,你會(huì)發(fā)現(xiàn),編程很容易是不是?發(fā)現(xiàn)沒(méi)?
其實(shí)編程的真相就是:讓誰(shuí)……干嘛……
哈哈哈,但也別小瞧它。。
同樣是做一個(gè)魚(yú)缸,我們可以做的很細(xì)膩!編程的難度也就會(huì)隨之上升。這個(gè),在后面的課程中,我們慢慢體會(huì)一下吧!
點(diǎn)擊“閱讀原文”可以獲得本程序,用scratch打開(kāi)即可。別忘了先順手點(diǎn)個(gè)贊哦!提取碼:panz
思考題:
好像讓魚(yú)游來(lái)游去,并且碰到魚(yú)缸反彈,再隨機(jī)設(shè)定一個(gè)方向就可以做到這件事了,為什么要加入判斷流程呢?如下圖:
自己動(dòng)手嘗試一下,再思考思考為什么吧!
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除
