我教“孩子”在10小時內精通Scratch-第2小時:畫畫


“嘟”的一聲,視頻接通了。視頻那頭的她已經開始賣萌了,睜大了眼睛吐著舌頭,好像在等我喂吃的。。。

我就只好翻白眼,“萌貨,今天上班累不累啊?” (總覺得“女兒”在上班,老爸卻在讀博士怪怪的。。。)

她開始訴苦,“累,都忙瘋了。我想玩小貓放松放松,粑粑,我們今天學什么啊?”

我黑線=.=,“不要叫我粑粑!今天我們先熟悉下Scratch的各個功能模塊,也就是怎么控制小貓,然后我教你怎么讓小貓畫畫好嗎?”

“好呀好呀,我已經準備好了!”她很興奮地看著電腦。

我讓她先打開網頁"https://scratch.mit.edu/",這時她應該看到(部分):

我告訴她,“萌貨,你先創建一個新項目,點擊Create按鈕。” 這時候她看到的應該是這樣的畫面。

還沒等我開口,她驚呼,“剛才還是英文畫面,它居然自動跳到中文了耶?!”

這樣的細節也能注意到,不愧是我女兒!

我先給她介紹腳本的各個模塊,“你看腳本那個地方,‘動作’、‘外觀’、‘聲音’按鈕,顧名思義,那里面的命令就是控制小貓怎么動,外表怎樣,發出什么聲音;‘畫筆’功能就是控制在圖上畫畫的筆;其他功能暫時不學習,等以后再介紹。”

我接著告訴她,“你要把每個項目都看成你的孩子。所以,你可以先給它起個名字,比如小貓,不過如果你的項目多了,你就不知道每個項目是做什么的了,所以。。。”

還沒等我說完,她都學會搶答了,“我知道,起個能表達內容精髓的名字。”

我問她,“比如?”

“小貓咪學畫畫!” 她說完一臉欣喜。

我打趣她,“你叫小貓咪?哈哈。好,那我們先讓小貓咪畫一條直線。”

她也做好了準備。

我繼續跟她介紹,“先點擊小貓,讓它待命。再點擊‘事件’按鈕,把‘當綠旗被點擊’拖到右側空白區域,這相當于告訴小貓,如果你點擊‘綠旗’,它就要開始聽你的指令了。放心吧,它很聽話的。”

“這個我明白,下一步是不是點那個‘畫筆’?” 她已經開始主動思考了。

“你好聰聰(明)!對的,你點開看看有什么。”我趁機夸她。這時她看到這樣的畫面:

“你平時畫畫的第一步是做什么?”我啟發她。

“我知道啦!我要把‘落筆’塊拖過去,畫完了我還要‘抬筆’,所以我還要把‘抬筆’塊放在‘落筆’塊下面。” 這時,她看到的是這樣的畫面:


我希望能讓她每寫完一行代碼就試試效果,這樣可以形成感覺,“你點擊‘綠旗’看看會發生什么?” 就是下圖紅框里的這個按鈕,如果鼠標接觸它,它會變成鮮亮的綠色。

她點了一下,告訴我,“神馬都沒有發生啊。”

我趕緊告訴她原因,“這是因為你只是落筆抬筆,你并沒有移動筆。”

她豁然開朗,“對哦,那我是不是要去‘動作’按鈕里找移動的命令?”

我松了一口氣,看來她已經明白了:

有一些效果需要不同的功能模塊之間的命令配合起來才能完成。這是學編程的一個小臺階。對于小孩子,一定要讓他們明白和體會組合的魅力,讓他們發揮想象力,去嘗試組合不同功能的命令,實現豐富多彩的編程效果。

我鼓勵她,“是的,你去把‘動作’按鈕里的‘移動10步’命令拖到‘落筆’和‘抬筆’之間,再點擊‘綠旗’,看看會發生什么?”

她這時會看到這樣的結果:

她告訴我,“小貓咪好像移動了一點,但是并沒有出現畫筆的痕跡啊。”

我告訴她,“那你把‘移動10步’改成‘移動100步’試試?”

她興奮地叫著,“啊哈,小貓咪終于動起來了,真懶,我叫它走10步就只走10步,多走點還可以減減肥嘛。”她看到的結果是這樣的:

我哈哈地笑,“小貓咪好無辜,太聽話也被批,哈哈!”

我接著告訴她原因,“這是因為只移動10步,小貓咪的身體把它畫的線擋住了,如果你只想畫畫,希望小貓咪暫時先消失一下,你可以點擊‘外觀’按鈕,把里面的‘隱藏’拖到‘落筆’之前。”

她照做了:

這時代碼應該是這樣的:

我接著告訴她,“你點擊‘綠旗’看看,小貓咪是不是消失啦?”

她如果點擊‘綠旗’,看到的是這樣的畫面:

她好奇地問我,“小貓咪消失啦,它去哪里啦?”

我調侃她,“它是被你批評,傷心地走啦!哈哈!” ?

緊接著安慰她,“別擔心,它只是被隱藏起來了,如果這時你把‘顯示’塊拖到‘抬筆’后面,它會再次出現。不過我們先讓它一下消失一下,專心畫畫吧。”

我問她,“我覺得你畫的太細了,想不想把畫筆變粗點?”

“想啊想啊,怎么弄?”

我告訴她,“別急,我們先把舞臺擦干凈。你點擊‘畫筆’按鈕,然后把‘清空’拖到‘隱藏’前面,這個時候你點擊‘綠旗’的話,程序會先清空舞臺,再隱藏小貓咪,然后落筆畫長度為100的直線。不信你試試看。”

她這時候的操作:

看到的代碼應該是這樣的

點擊‘綠旗’之后,畫面應該是這樣的:

結果是(右側邊緣有一條藍線):

她開始問我,“我怎么覺得小貓咪一直在偷偷滴往右走。”

我告訴她,“對的,如果你想每次開始的時候讓小貓咪回到中心的地方,你需要告訴小貓咪,你先到中心地方等著。怎么告訴它呢?”

我頓了頓,讓她思考一下,接著說,“在‘動作’按鈕里,有一個‘移到x冒號y冒號’的塊,把這個塊拖到代碼區域里的‘清空’塊前后都可以。”

她告訴我,“我把這個塊拖到‘清空’下面了,接下來呢?” 那代碼應該是這樣的:

“然后點擊x和y的右側的數,把x和y的數值都改成0。”代碼變為:

“別點‘綠旗’,你先把‘隱藏’和下面的所有命令都消除掉。很簡單,你只需要點擊‘隱藏’塊不放,然后拖到腳本的區域就可以啦。” 此時代碼是這樣的:

我告訴她,“你點擊‘綠旗’的話,小貓咪還是不出來,你信不信?” 如果她點擊‘綠旗’,看到的舞臺應該是白白的一片,就不給圖了。

她很好奇地試了,“真的耶,那我把‘顯示’塊放在下面再試試。。。恩,這樣就可以了,好簡單,小貓咪真聽話。” 此時舞臺和創建新項目的時候一樣,也不給圖了。

我聽了后就哈哈地笑,女兒真可愛,問她,“現在你已經可以控制小貓咪出現或者消失了。那么我們嘗試把畫筆變粗點,你把將‘畫筆的大小設定為1’塊拖到‘顯示’塊下面,再把‘1’改成‘5’。”

她做完后告訴我好了,我接著教她,“你把‘落筆’拖到‘將畫筆的大小設定為5’下面,再把‘抬筆’放在‘落筆’下面。接著點擊‘動作’按鈕,把‘移動10步’拖到‘落筆’下面,并將數字‘10’改成‘100’。”此時代碼是這樣的:

她告訴我弄好了,我讓她點擊‘綠旗’看看效果。效果如下圖。

她很開心O(∩_∩)O~,“畫筆真的變粗了啊!”

我這時候問她,“你想不想給畫筆換一個顏色?”

她還在開心中^_^,“哈哈,我看到這個命令了,不用你教我,這個我會!這有三個命令是改畫筆顏色的。”她說的是

我開始嘗試增加難度,“那你畫一個正方形看看?”

她問我,“沒問題!可是該怎么畫豎線呢?”

我把皮球提給她,“你自己覺得呢?”

她很快給我答案,“可以用‘動作’里的‘將y坐標增加10’這個塊。”

于是她開始嘗試,邊改代碼邊自言自語,“正方形的四條邊相等,所以應該把‘10’改成‘100’。”

我夸她,“真聰聰!” 她的代碼應該是這樣的:

點擊‘綠旗’后,應該得到這樣的效果:

這時候她又疑惑了,“怎么讓小貓咪往左走呢?”

我反問她,“數學里的負數是不是正數的反方向啊?” (如果小孩子沒有學過負數,下面這個可以忽略,往下看,跳到“沒有負數的解決方案”。)

她頓悟,“哦,我明白啦!只需要把‘移動100步’改成‘移動-100步’就可以了。”代碼如下:

我很高興O(∩_∩)O,“也可以用‘將x坐標增加10’拖到‘抬筆’上面,然后把‘10’改成‘100’也可以做到。”代碼如下:

點擊‘綠旗’,結果如下:

剩下的不用我教她,她已經都會了,“然后我把‘將y坐標增加10’這個塊放在‘抬筆’上面,然后把‘10’改成‘-100’就可以了。”代碼如下:

點擊‘綠旗’,結果如下:

看到正方形出現的那一刻,我的“女兒”興奮地敲桌子,她的手機倒下了,然后我就只能看到她家的天花板了。。。。。。

我提出抗議,“我摔倒了,你要賠錢,快扶我起來!”

于是她又把手機拿起,靠在一個地方,這樣視頻的時候我才能看到她。

沒有負數的解決方案

我接著告訴她,“其實還可以有別的方法,不用負數也可以畫正方形,只要在畫完橫之后把小貓咪的朝向改變就可以。”

她問我,“那怎么改變小貓咪的朝向呢?”

我故作神秘,問她,“你覺得呢?”

她看著電腦屏幕思考了一會兒,就笑了,“很簡單嘛, 我只要用‘面向90方向’這個塊就可以了。” 然后她給看了看她修改后的代碼和點擊‘綠旗’后的效果。

我想不到她悟性還不錯,以前只知道她賣萌總是給我帶來驚喜和井猜。所以,

不要小看任何一個人在編程方面的潛力!

當然,我沒有貶低我“女兒”的意思。她也是很聰聰的人,繼承了‘爹’的智商(?~?~)。

我希望她不要驕傲,就告訴她,“還有一個方法,可以用‘向右旋轉15度’這個塊,你把‘15’度改成‘90’度試試。”她給我的代碼和效果是這樣的:

我接著告訴她,“其實這個還有別的方案,以后我們會學到‘控制’按鈕,里面會有循環功能,這是編程里很重要的一個功能。”

她的好奇心也來了,“那怎么用循環啊?”

我得意了,心想你不會了吧O(∩_∩)O! hiahiahia!

然后我告訴她,“你點擊‘控制’按鈕,選擇‘重復執行10次’這個塊,拖到‘落筆’下面,它會自動把下面的所有塊都包進去,你把抬筆拖到‘重復執行10次’下面,把‘10’改成‘4’。然后只留一組‘移動100步’和‘向右旋轉90度’就可以了。”

她很聰明,給我的代碼是這樣的(效果和上一張圖一樣的,略掉):

教她做的其他項目,過程與上面的類似,這里就只給出代碼和效果圖:


如何畫不斷變顏色的正方形

變顏色的關鍵命令是:

代碼:


效果:

如何畫彩虹狀的圓

代碼:

效果:

如何畫彩色六角形并轉一圈(360度)

代碼:

效果:

小貓咪表示抗議,“我都轉暈啦!”

我只好安慰它,“今天就辛苦你嘍!我去給你做紅燒??去。”

小貓咪,“不吃了,我最近減肥。”

我=.=

后記


等她學會這些畫圖技能的時候,她已經開心到爆了,她告訴我,沒想到編程這么容易還這么有趣!

我問她,“下次課想學什么啊?”

她說,“我記得以前用basic語言學怎么編曲,scratch可以做到嗎?”

我哈哈大笑,“完全可以的!你看腳本里的那個‘聲音’按鈕,它可是很強大的哦!”

我本想說,“下次我教你...” 突然想起“人之患在好為人師”這句話,就改口說,“我下次就和你一起學習如何用聲音編曲和做樂器吧,相信我,scratch可以讓你的鍵盤變成鋼琴或者吉他。這都是你喜歡玩的樂器啊!”

她非常滿意今天的成果,保存了所有項目,就關上電腦。


第2小時就這樣結束了,我的“孩子”,也就是我的女友學會了如何用scratch畫畫。下次課,我會讓她學會如何用scratch編曲,不過編曲的效果不好通過圖像表達出來,所以希望大家能照著教程自己寫程序看結果,這樣才能達到學習的目的。


轉載請注明:來自微信公眾號“君君玩科技”。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容