- 少兒計算思維養成記:六個孩子的編程學習筆記
- 包若寧等編著
- 1153字
- 2022-04-24 09:43:41
二、動手練:閱兵方陣列隊行進
(一)實驗目的
讓小貓排成一個閱兵方陣,并且列隊行進。
(二)基本思路
我們首先創建一個小貓角色,名字叫Sprite1,然后讓這個小貓生成多個克隆體。比如方陣有3行2列,我們就生成6個克隆體,加上原始角色Sprite1,我們會看到一共有7只小貓。
在用克隆技術時,我們要注意下面幾點:
1)創建克隆體時使用的是“克隆自己”積木塊(在“控制”類里)。
2)當克隆體剛剛生成時,跟原角色是一模一樣的,當然了,后面克隆體可以改變自己的狀態。這里,我們讓角色每走到一個位置就克隆一次,這樣克隆的初始位置就有了。
3)克隆體執行哪段腳本呢?我們把克隆體要執行的腳本前面加上“當作為克隆體啟動時”積木(在“控制”類中),就是圖5-2中顯示的這個。

圖5-2 “當作為克隆體啟動時”積木
提醒一下:原始角色Sprite1的腳本前面是“當被點擊”(在“事件”類),可不要弄混了?。?/p>
(三)編程步驟
(1)角色設計
只有一個角色小貓,名字叫Sprite1。
(2)變量設計
跟上一講一樣,我們設置兩個變量“幾行”和“幾列”,表示閱兵方陣的行數和列數;此外,我們還要新增加兩個變量“我的x坐標”“我的y坐標”。不過建立這兩個變量時一定要選擇“僅適用于當前角色”,否則所有克隆體的“我的x
坐標”變量都是同樣的值,“我的y
坐標”變量也都是同樣的值。
(3)過程描述與代碼展示
我們讓小貓從第一行的第一列開始,逐個去站位,每隔50步站一只;站滿了一隊就換下一隊,再從頭開始。不過站位時是“克隆”一個自己(見圖5-3中左側部分)。

圖5-3 用克隆技術實現的閱兵方陣腳本(左)及實驗結果(右)
(四)實驗結果
現在點擊綠旗,輸入行數和列數,你就會看到小貓排好方陣,然后每秒走一次了(見圖5-2中右側部分)。
注意,這六個克隆體的腳本相同,但是起始位置是各不相同的;每個克隆體的起始位置是創建克隆體時角色的位置。
(五)遇到的bug及改正過程
bug:今天我遇到一件奇怪的事情,一開始程序運行得好好的,突然再運行時小貓都不出現了。程序沒做任何改動啊,真奇怪!
改正:我查了半天,才發現一個低級錯誤——我不小心按到了角色區的顯示開關上,關閉了小貓的顯示。怪不得呢!重新打開顯示開關就好了。
(六)思考與延伸
我覺得克隆最大的好處就是避免了對每個角色重復編寫相同的腳本。
克隆很有用,但是也不能無限制地生成克隆體。當克隆體達到一定數量的時候,Scratch就會停止克隆。
我們可以自己測試一下,比如新建一個變量,將變量的初始值設置為0,每克隆一個就增加1,最后就可以看到最終的克隆體個數了。我試了一下,克隆到300個左右就無法繼續下去了。這是因為克隆體越多,需要的內存也越多,短時間內大量增加克隆體會導致計算機內存消耗極大,容易卡死。
那么,在使用克隆功能的過程中要如何解決這個問題呢?Scratch提供了一個“刪除此克隆體”的積木(在“控制”類中),在用完克隆體后要及時刪除。