資訊內容
就一個 Scratch少兒編程 圖章,我竟玩得停不下來
一個讓我犯愁的工作坊
這周末的 Scratch Day ,Mitchel Resnick 會來,當然得要認真準備。一共六個工作坊,有樂高有 micro:bit,Tom 和老風的 MakeyMakey 更是設計了一大堆歡樂無比的體感游戲。相比之下,我和娜娜的 Scratch 純軟件工作坊氣勢上就輸了一大截,真擔心旁邊教室扮成金剛的 Tom 一聲歡呼孩子們就全跑了去。
思來想去,只能借助打印機和徽章機:教孩子們用代碼畫畫,現場打印成貼紙或壓成徽章,應該還能多些誘惑力。好像是 Jovi 吧,聽我說了“用代碼畫畫”后馬上補了句“正好新年剪窗花”,于是我們的工作坊就叫做“窗花代碼藝術創作”。
用代碼來畫窗花是最容易不過的事。信手涂鴉幾個奇怪造型,再旋轉著敲圖章,窗花就畫好了。
同樣的造型,旋轉不同角度重復敲不同次數的章,效果會就不一樣。
但那么簡單的玩法可實在拿不出手啊~~翻出我的“代碼藝術課”私家珍藏,找到“對稱圖案”這章中的一個程序,稍作改動就成為剪窗花游戲。
美滋滋的玩了好久后,我開始犯愁 Scratch Day 那天要怎么教孩子們。別的不說,估計光講完八個對稱位置的坐標關系,孩子們就都找 Tom 去玩了。
繼續在我的“代碼藝術課”私家珍藏里找,翻來翻去都是邏輯性很強的作品,好些甚至還用到了分形、三角函數等知識。這些作品很能體現 Seymour Papert 的“通過計算機去學習其它知識”的思想,但我畢竟不是去上數學課的呀。
反省:邏輯 or 創意?
想起上周末代碼搗鼓日的晚上,和老師們聊起從 Piaget 到 Papert 到 Resnick 的思想的演變。Resnick 很好的繼承了 Papert 的思想,且在其基礎上順應時代需求,將關注點放到了創造力培養上。那我的用代碼畫窗花的工作坊,怎樣才能超越 LOGO 式的畫畫,更多的發揮孩子們的創造力呢?
我沒有答案。
干脆,自己先來玩一玩吧。
盡可能降低代碼的邏輯要求,甚至不用畫線功能,看看光靠敲圖章,能敲出怎樣的創意來。
蒙德里安?草間彌生?如果不使用復雜邏輯,我該怎樣才能創作出有藝術味道的畫呢?也許只能畫畫波洛克?
我試著學草間彌生:
用點點裝飾圣誕樹:
還用來給甜甜圈添加糖粒:
但還能玩什么呢?我的創意又進入了死胡同。
忽然看著被彩燈掩埋的圣誕樹,我想到了修拉:我可以用點彩的方式來給窗花涂色呢。
玩出來的創造力
只要把造型設成一個小點,在畫布上隨機移動,遇到不是白色的地方蓋章,就可以了呢,代碼比給圣誕樹裝彩燈更簡單。
實驗一:
通過顏色特效代碼,可以讓造型變成各種彩點。所以在下圖背景上運行代碼,就可以得到一朵五彩窗花。
(重要技巧:按住shift鍵的同時點擊綠旗,可以進入加速模式。)
實驗二:
繼續玩,改一下顏色特效的隨機數范圍,就是冰藍的雪花了。
實驗三:
換個顏色范圍,就是烈焰般的色彩,更適合用婀娜女郎做背景圖。
實驗四:
不過我還是更喜歡冰藍的雪花,從網上找了些雪花剪影,發現很有意思,于是最初的窗花代碼又可以派上用場了,還是省略了變量的極簡版:
正在我精心設計雪花瓣的時候女兒跑來了,亂涂了幾根線條發現效果竟也都不錯。特別是搞笑的卡通上下眼,我怎么都想象不出它能演變成那么正常的一幅窗花。
實驗五:
現在程序是:按 a 鍵畫黑色窗花剪影,按空格點彩上色。玩夠了隨機色后,我的邏輯腦又不甘靜默了。添加一個求距離的公式,染出彩虹色的花。
如果不想教孩子們公式,其實也有簡單方法:添加一個在(0,0)位置的“原點”角色,然后復雜的公式就變成如下易理解的代碼:
實驗六:
繼續玩,把圓點變成細斜線后圖畫的風格都變了。
實驗七:
繼續玩。之前是“碰到白色不成立就敲圖章”,彩點都嚴格畫在黑色輪廓之內。將判斷條件換成“碰到黑色就敲圖章”,彩點會跑到輪廓之外,畫出來的是毛毛的感覺。
實驗八:
畫的彩點多了把黑色全部蓋住成了一個個圓環,不夠有趣,再添加一個亮度的隨機值:
實驗九:
旋轉的花紋玩過癮了,換成平移。小時候也剪過這樣拉花式的窗花呢。
實驗十:
把顏色設為x坐標,就出現了彩虹拉花。
實驗十一:
按y坐標來設顏色,是另一種趣味。我應該做一個只有上半部分的火焰圖案。
實驗十二:
直接拿 Scratch 自帶的造型也可以作畫
上圖使用的是“碰到白色不成立就敲章”的邏輯。如果要用“碰到黑色就敲章”的邏輯,只需要把背景造型的亮度改成-100就可以了。
實驗十三:
正當我玩得起勁時,女兒又來搗亂了:她拖動蝴蝶角色到處飛,結果點彩跟著蝴蝶動,竟然滿屏都是彩點。
這給了我靈感:干脆讓彩點遇到角色就敲圖章吧。為了提升效率,把一個彩點變成一堆彩點也不錯。
結果很讓人歡喜:圖像如小草般迅速長成了模板的形狀。
回顧:創意的源泉
近十個作品、十幾個實驗玩下來,再回頭去看用了八個坐標關系的剪窗花游戲,雖然我依舊喜歡它的簡潔精美,但已經清楚的知道:工作坊上我有更值得帶孩子們玩的東西。
用代碼畫畫是 LOGO 的標志性玩法,用來教數學再好不過,我的整套“代碼藝術課”中用到大堆的數學知識,也正是因此我一直沒把這門課做出來:畢竟現在學 scratch 的以低齡孩子為主。作為一個喜歡邏輯思考的工程師,我的創意也常常是強邏輯性的。但這次,我嘗到了“玩”的精彩。
用點彩法畫畫,來自于程序運行過頭后的意外;
兩次靈感突破都來自女兒的搗亂;
從旋轉的窗花到長條的拉花來自童年剪紙的記憶;
唯有色彩選擇用到了一點點邏輯思考。其實我只是還不知道,如果換做孩子們來寫色彩相關的代碼,會有什么意外效果給我們帶來驚喜呢。
