程式設計與實體運算

課程總覽


學校日簡報

學校日簡報六年級上學期

單元ㄧ:魔幻水族箱

單元二:聲控遊戲

利用音量變化來控制遊戲中的主角作出相應動作,稱為「聲控遊戲」,與鍵盤滑鼠的控制不同,音量的控制需要天份,一般人很難達到純熟,也因此聲控遊戲玩起來特別有趣和刺激。

在電腦開發聲控遊戲必須先設置好麥克風,或者是其它能夠收集聲音的裝置,例如:視訊鏡頭。

在製作遊戲之前,請點擊連結試玩遊戲:https://e.meps.tp.edu.tw/scratch/sound%20fly .html

收集聲波資料

在 Scratch 中可以透過「偵測」類積木的「聲音響度」取得目前的環境音量。如果要在「舞台」上繪製聲波圖,我們必須要收集「聲音響度」儲存到清單」中,然後再用「畫筆」積木繪製出來。

「清單」也是「變數」的一種,是用來記錄一群資料所使用的結構,所有的資料都被以相同的變數名稱存取,但是大家依照順序排序,所以每一個資料項目都有一個索引值,只要指定要存取的索引值就可以從清單中取出或存入資料項目。

當我們將「聲音響度」儲存進清單時,越早存入的資料其索引值就越小,所以當要刪除過時的資料時,必須從第一筆開始刪除,而第二筆資料就會自動遞補為第一筆。這種先儲存的資料先刪除的做法稱為「先進先出法」(FIFO,First In First Out)。

步驟一:

建立一個空白的角色,命名為「聲波圖」,這個角色只用於繪製聲波圖,所以不需要造型。

建立一個清單,命名為「聲波」。

首先將清單內的所有資料清空,以避免反覆執行時,上ㄧ次的資料會遺留在裡面。

接著使用一個「重複無限次」迴圈開始收集資料,檢查資料項目是否超過 480 筆,如果是則將超過的舊紀錄刪除。

之所以只保留 480 筆資料,是因為「舞台」的寬度是 -240 ~ 240,只有 480 個點。

擴展積木與函式積木

在 Scratch 中有三種程式積木可以使用,分別是:預設積木、擴展積木、函式積木。

「畫筆」積木是 Scratch 的擴展積木,可以從右下角的「添加擴展」。

繪製聲波圖

步驟二:

建立一個變數「掃描線」,用來記錄清單「聲波」目前的索引值。這個變數請設定成「僅適用當前角色」。

建立一個函式積木,命名為「畫聲波」,記得將「執行完畢再更新畫面」勾選起來。

首先將「筆跡全部清除」,將畫筆(即目前的角色)定位到螢幕的左側邊緣,將變數「掃描線」歸零。然後再下筆。

請使用一個「重複 480 次」的迴圈,將掃描線加ㄧ,並從清單「聲波」讀取相對應的資料,也就是從第一筆開始讀,直到第 480 筆。

由於「聲音響度」數值範圍是從 0 ~ 100,沒有負數。所以繪製出來圖形不像聲波圖,可以把「聲音響度」數值乘以 -1 來模擬。

迴圈執行完畢後,使用「停筆」積木停止繪圖功能。

這裡我們繪製的聲波圖,其實不是真正的聲波圖。真正的聲波圖除了聲音響度(聲音震動的幅度)以外,也會收集聲音振動的頻率,而形成複雜的波形。

步驟三:

將剛剛定義好的「畫聲波」積木,插入到主程式中,一邊繪製聲波圖,一邊收集聲音響度,如右圖。

請測試執行結果是否與預期相同。

用音量控制飛行貓

步驟四:

切換到小貓角色的造型分頁,新增 Scratch 內建的「Cat Flying」造型,並將原有的兩個造型刪除。將角色名稱修改為「飛行貓」。

設定飛行貓的迴轉方式、起始位置和角度,然後進入遊戲迴圈。

我們需要一個變數「高度」,用來計算和儲存飛行貓上升或下降的幅度,請勾選「僅適用於當前角色」。

以 20 分貝為基準,當音量大於 20 分貝就增加高度,小於 20 分貝就降低高度。將聲音響度減掉 20 以後,還必須除以 3,讓高度變化不要太劇烈,你可以試試看除以 1 或 2 的效果,這個數字是可以依照個人喜好自由調整的。

飛行貓的 Y 座標,依照計算出來的高度增減(高度為負數時,就是減少),注意不要讓飛行貓飛出舞台的範圍,也就是說,Y 座標要介於 -160 ~ 160 之間,考慮到舞台上方要顯示目前的生命值和飛行距離,所以略為下降到 125 左右。以上數據僅供參考,你必須根據自己飛行貓的大小和變數顯示的方式來調整這些數字。

為了讓飛行貓表現出往上飛和往下飛的動態,我們也可以修改飛行貓的旋轉角度,朝右平飛是 90 度,而當變數「高度」為正數時,角度必須往上傾斜,也就是角度必須小於 90 度,「高度」為負數時,必須往下傾斜,也就是角度必須大於 90 度,因此是用 90 度減去高度變化。為了讓角度變化看起來比較明顯,會先把「高度」乘以 3,然後再用 90 去減。與前面相同,要不要乘以 3,還是要乘多少,可以自由調整。

請測試執行結果是否滿意,如果不滿意請調整以上數學算式裡的相關數據。

捲軸動畫-背景水平捲動

我們的飛行貓雖然 Y 座標會變化,但 X 座標始終固定在舞台上同一個位置。如果要表現出往前飛行的動畫效果,我們就必須移動背景才行。你可以想像背景圖是一張很長的圖片超過舞台的寬度,而我們只能看到出現在舞台的部分。

由於 Scratch 並不允許造型的寬度超過舞台太多,因此只能使用多個角色,或多個分身來接圖。底下的範例將使用分身來接圖。

步驟五:

首先,繪製舞台背景,只需要單純的天空色和太陽。太陽使用內外漸層,內部為橘黃色,外部為透明。

建立一個新的空白角色,命名為「背景」。切換到造型分頁,先畫出矩形,然後使用「塑形」工具拉出山脈的形狀。這樣的造型需要兩個以上,請注意靠近舞台邊緣的地方,必須調整山脈的高度讓它可以跟下一個造型的山脈銜接在一起。

注意到舞台左下和右下各加一個點,以保證造型移動到舞台邊緣時可以無縫接圖。

Scratch 為了防止角色不小心移出畫面,所以當角色邊緣靠近舞台邊緣時,座標會被凍結。加兩個點讓角色邊緣變大,就可以讓這個機制延後發生作用。

本體與分身

分身是本體的複製版本,跟直接複製角色不一樣的地方有三個:

為了在分身與本體之間分配程式碼,請使用「當分身產生時」積木,把程式碼指派給分身執行(本體不會執行這一段程式)。要給本體執行的程式,請使用「當綠旗子被點擊」積木(分身將不會執行這一段程式)。如果使用「當收到訊息...」積木,則無論本體或分身都會執行該程式。

「分身刪除」積木的作用是將自已刪除,所以必須分配給分身執行才會有效果。如果以後還會用到這個分身,可以直接使用「隱藏」積木,而不需要刪除,等到要用到時再「顯示」就可以了。如果確定不會再用到它,則可以在遊戲結束之前直接刪除,以便進一步減少記憶體的使用量。

步驟六:

建立變數「背景圖位置」和「顯示位置」,請設定為「僅適用當前角色」,這樣可以讓每個分身都擁有自己的同名變數。

建立變數「主角位置」和「速度」,都是「適用所有角色」。前者用來設定主角飛行貓目前在整張拼合的背景圖中的位置,後者則是飛行貓的飛行速度,其實也就是背景捲動的速度。

角色「背景」(不是舞台背景)本體是不需要顯示的,因此先隱藏起來。設定第一個分身的造型和位置,然後「建立自己的分身」。如果要往左捲動,那麼下一張圖片應該接在第一張圖片右邊 480 的位置。

反過來說,如果是要向右捲動,那麼下一張圖片位置就是 -480。

捲動背景圖

介紹捲動最簡單的方法,將所有圖片(所有的分身)同時一起向左移動「速度」點,當圖片往左移出舞台外面時( X 座標為 -480),將圖片接回到舞台的右側( X 座標為 480)

這個方法雖然簡單,但是有底下三個缺點:

補充教材

加入敵人

只有飛行貓自己一個人太寂寞了,我們來增加一些敵人。首先,建立兩個「適用所有角色」的全域變數,分別是「生命」和「距離」,用來儲存玩家的剩餘生命和累計飛行距離。記得在飛行貓的程式裡,設定「生命」的起始值,例如:「變數生命設為 5」。

我們將利用「生命 < 1」當作遊戲迴圈的結束條件,請將上面的所有程式中有使用「重複無限次」的迴圈,通通改成「重複直到 生命 < 1」

在飛行貓的程式中,請在「重複直到 生命 < 1」迴圈中將「距離改變 1」,用來統計目前的飛行距離。

建立新角色「敵人」,找一些適合的造型當作敵人,如下圖。在敵人角色中,建立新的變數「敵人速度」,並設定成「僅適用目前角色」,這樣可以讓所有的敵人分身都擁有「敵人速度」這個變數。

敵人在飛行距離到達 500 以後才會出現,出現的敵人數量為飛行距離 500的倍數,例如:當距離為 1000 以上會同時出現兩個敵人。

敵人向右飛行,碰到邊緣時就刪除,碰到玩家時,將玩家生命減 1,並且刪除分身。

加入輔助道具

有了敵人之後,我們也加入可以補命的輔助道具。

建立新角色「生命」,使用 Scratch 內建的「heart red」愛心造型,如圖。

愛心出現的間隔時間為 8 秒,這個可以自由修改。

愛心的飛行速度是飛行貓的 3 倍,這個數字也可以自由修改。

進階捲動程式

計算背景圖與主角的距離,並儲存到變數「顯示位置」中,「顯示位置」就是背景與主角此刻的相對位置。

計算「顯示位置」除以背景圖總寬度的餘數。如果角色「背景」有兩個造型,則總寬度為 480 x 2 = 960。假設「顯示位置」為 1200,因為 1200 已經超出背景圖總寬度 960,而超出部分是 240(餘數為 240)。也就是說主角已經位於循環一次的背景圖中 X 座標為 240 的位置

如果要讓背景圖向左或向右捲動都能正常執行,那麼一開始就必須在第一個造型的左右兩側各準備一個分身,如果有兩個造型就需要三個分身。

或者我們可以這樣想,一開始主角就是在第二個造型中,這樣主角就可以向左回到第一個造型,或向右走到下一個造型。因此,把整張背景圖往左邊一個舞台寬度擺放就可以了,這就是餘數還要 - 480 的原因。好處是我們不用多準備一個分身。

當主角移動時,無論是往左或往右,都能正確匹配主角與背景圖。

請將右側的程式,加到飛行貓「重複無限次」迴圈中。

為了向左、向右都可以捲動,需要準備三個分身,或者是把整張背景圖向左移動一個畫面。

加入前景捲動動畫

如果要讓背景更有立體感,我們可以加入前景,前景捲動速度應該比背景更快,這樣整個舞台空間會更有層次。前景的做法與背景差不多,我們將準備背景兩倍數量的造型,這是因為我們希望前景捲動速度快兩倍,因此造型的消耗速度也就會快兩倍,一開始就準備足夠的造型才能應付需求。

這次要產生四個分身,可以考慮用「重複 4 次」的迴圈來處理。

另外顯示位置是「背景圖位置」減去「主角位置」的兩倍距離。這樣捲動速度就會變成兩倍。

單元三:樂透抽籤機

共同討論:

小朋友你們有參加過大賣場舉辦的摸彩活動嗎?大家都是如何提高得獎機會?

如何保證摸彩的公平性呢?

參考答案

1.每人限投一張。

2.規定折疊方式。

3.抽獎前必須攪拌10秒。

4.彩劵應該裝在圓形容器裡抽出。

基本款抽籤機

電腦抽籤比較公平:避免人為操控、抽中機率接近公平(隨機數的特性:抽籤次數越多越公平)

製作抽籤機程式時,為了適應各班人數不同,抽籤範圍應該由使用者自行輸入

此程式共需要三個角色,佈置如右。

步驟一:

步驟二:

十位數

個位數

步驟三:

修改【機器人】角色的程式,
當點機器人一下就可以重新抽籤
(跳過提問和回答的程序)

實體運算

如果不使用電腦,也能公平地抽籤嗎?

分組討論:


當問題很複雜時,我們可以嘗試簡化問題降低難度,例如:

老師歸納解法,關鍵在於將骰子點數分組以便匹配人數。

參考答案

分組討論:

參考答案

回到原來的問題:

由於班上同學人數無法剛好分成六個人一組,所以需要例外處理,如果抽中不存在的人,就必須重抽。

若第一次抽中 4,第二次抽中 3,如何知道實際上抽中的同學是誰呢?

參考答案

假設第一次抽中的是 X,第二次抽中的是 Y,如何把剛剛的討論結果轉換成演算式?

參考答案

(X-1) * 6 + Y

如何將序號轉換成座號呢(假設男生從 1 號開始,女生從 21 號開始)?

參考答案

方法ㄧ:

假設男生人數為 14,抽中號碼小於或等於 14  則不需要換算,抽中等於座號;如果抽中是 15,轉換成座號就是 21 號。

抽中之序號若為 X,則座號就是 (X - 14) + 20

如果把男生人數改為 A,女生的座號從 B 開始,則

座號 = (X-A) + (B-1)

如果把變數改成中文,也就是

座號 = (抽中 - 男生人數) + (女生起始座號 - 1)

方法二:

計算中間沒有人的空號 21-1-14 = 6(從 15 號到 20 號有 6 個號碼是空號)

如果抽中為 X 而且「抽中>男生人數」,則座號就是 X + 6

如果把男生人數改為 A,女生的座號從 B 開始,則

座號 = X + (B-1-A)

如果把變數改成中文,也就是

空號 = 女生起始座號 - 1 - 男生人數

座號 = 抽中 + 空號

方法三:

如果想要節省計算的時間,也可以事先製作「序號與座號對照表」,利用「查表法」來求得答案。

跳號抽籤機

任務:將上上一節課完成的基本款抽籤機,該成通用型抽籤機

(本校任何一個班級都能使用,女生座號都是從 21 號開始)

步驟一:


步驟二:

補充教材:查表法

在 Scratch 裡面,剛剛講的抽屜也就是前面介紹過的「清單」。

程式設計步驟:

單元四:空戰 1942

1942卡普空(Capcom Co.)在1984年推出的大型電玩平台縱向捲軸射擊遊戲,隨後也被移植到任天堂紅白機PC-8801等平台。2008年在 Xbox Live ArcadePlayStation Network 發售重製版《1942:聯合打擊》(1942: Joint Strike)。

遊戲是使用八方向控制美式戰鬥機,有兩顆按鈕分別控制「射擊」和「空中迴旋」,為了降低製作難度,此單元將改成四方向鍵盤操作,保留「射擊」功能,忽略「空中迴旋」機制,並將敵機縮減為兩種,同時取消 Boss 敵人、海上船艦、地面坦克、強化武器包、能量補充包......等遊戲內容。

請連結到遊戲素材包,使用「改編」功能建立自己的遊戲副本。

遊戲試玩:https://e.meps.tp.edu.tw/scratch/air_fight_1942.html

縱向捲軸動畫-背景垂直捲動

「縱向捲軸動畫」與前面單元「聲控遊戲」學過的橫向捲軸動畫差不多,這一次有比較多的背景圖片,所以需要額外的程式碼進行以下控制:

與前面單元不同的地方是在製作完背景分身後,才使用廣播訊息「遊戲開始」進入遊戲,這樣可以精確控制程式的執行順序,以避免「當綠旗子被點擊」同時執行多個程式時,容易產生無法預期的結果。

分身程式與前面單元相比,多了紅色框框中的積木,這一段程式碼會隨機選取背景圖片,作為下一個遊戲畫面,並且將第一張背景圖忽略掉。

玩家角色

玩家駕駛的美式雙螺旋槳戰鬥機,必須生命值和得分。請先建立兩個變數:「生命」和「分數」,設定為「適用於所有角色」,並顯示在舞台上。

遊戲開始時,將玩家角色顯示於舞台中央偏下的位置。

方向與射擊控制

在 Scratch 的「事件」積木中已經提供鍵盤按鍵的偵測功能,你可以直接使用這些積木進行鍵盤操作控制,缺點是切換按鍵時會有約「0.02」秒的延遲,例如:從向上移動切換為向右移動時,角色會稍微停頓。按下空白鍵時,則透過「等待 0.1 秒」來控制飛彈發射的間隔時間,才不會因為連續發射飛彈導致遊戲太過簡單。

如果想要改善鍵盤控制的流暢度,就需要額外的變數來記錄鍵盤按鍵狀態,請建立三個變數:「搖桿X」、「搖桿Y」、「射擊」,設定為「僅適用當前角色」,並且將變數隱藏起來,不要顯示於舞台上。

在玩家的主迴圈中,先將變數「射擊」設為 0。

將「搖桿X」設為「向右鍵被按下」減去「向左鍵被按下」,當按下「向右鍵」時,為1 - 0 = 1,按下「向左鍵」時,為0 - 1 = -1,其他狀況為 0 - 0 = 0 或 1 - 1 = 0,也就是說變數「搖桿X」有 10-1 三種狀態。

「搖桿Y」設為「向鍵被按下」減去「向鍵被按下」,三種狀態 1、0、-1 分別代表「向上鍵」、沒有按或抵銷以及「向下鍵」。

根據「搖桿X」和「搖桿Y」移動玩家角色,每次移動 4 點距離,這個數字可以自行調整。

當「空白鍵被按下」而且變數「射擊」等於 0 時發射飛彈。當變數「射擊」大於 5 時,將變數「射擊」歸零,以便重新累計發射時間。

「飛彈」是另外一個角色,我們可以透過建立分身的方式,製作出多個飛彈。當持續按下空白鍵的時候,會看到ㄧ整排飛彈往前飛行,爽快感破錶。

當「生命」小於 1 玩家被摧毀)時,先隱藏角色,在遊戲結束前,顯示一段「玩家爆炸」的動畫效果。製作方式請參考附錄中的「爆炸特效」。

飛彈發射

如果持續進行射擊,就會同時有很多飛彈出現在舞台上,因此飛彈必須使用分身來製作。

請點選「飛彈」角色,當綠旗子被點擊」先將本體隱藏起來。

當分身建立時,將分身移動到玩家的位置,然後再顯示出來,飛彈速度可以自行調整,當飛彈碰到敵人或舞台邊緣,則將分身刪除。

「等候 0 秒」積木的作用是讓飛彈等到下次畫面更新時再刪除。在等待過程中,其它角色,例如:「敵人」和「大敵人」,可以同時偵測是否被飛彈擊中。

飛行音效

請點擊「玩家」角色,切換到「音效」分頁的話,可以試聽玩家角色的音效,是螺旋槳的聲音。反覆播放這個音效,直到玩家被敵人摧毀為止,也就是說重複到「生命」小於 1 的時候。

共用計時器

Scratch 提供的「計時器」是非常好用的功能,使用計時器來控制敵人出現的時間間隔,比起單純用「重複執行」的次數要更能適應個別電腦的運行速度。

左邊的程式,在新電腦上執行速度會變快,在舊電腦上執行會較慢,而導致遊戲難度不平均的問題。如果用這支程式來設定敵人出現的頻率,執行速度太快的話玩家甚至活不過 30 秒。

右邊的程式,則是根據計時器的秒數來執行,無論在什麼樣的電腦上執行速度都一樣,遊戲在不同電腦上執行會維持相同的難度。

然而,Scratch 的計時器只有一個,如果有兩種不同的敵人,出現頻率不同,該怎麼辦呢?

這種情況,我們可以併用變數和計時器來解決,想想看,如果我們有一個變數「秒數」,當計時器滿 1 秒鐘時,將「秒數」加 1 並「重置計時器」,然後再根據「秒數」進行頻率的判斷就可以了。

計算「秒數」除以 12 的餘數,當餘數為 0 時,「秒數」為 12 的倍數,例如:12、24、36......等等,這個時候就讓「大敵人」出現。

計算「秒數」除以 4 的餘數,當餘數為 0 時,「秒數」為 4 的倍數,例如:4、8、12、16......等等,這個時候就讓「敵人」出現。

請將右側程式放置於「舞台」上。

兩種敵人角色

第一種敵人是零式戰鬥機,會從舞台上方出現,同時出現 1~4 台戰鬥機朝下飛行,飛機的大小為 24,所以我們取一個適當的間隔 30,依照這個距離來放置戰鬥機。將圖層移到最上層,避免被背景圖片蓋住。戰鬥機移動速度設為 2,比玩家角色慢一些,如果想修改這個數字,請不要超過 4,以免遊戲難度過高。

敵機登場後會追蹤玩家的位置,並隨機發射子彈攻擊玩家,同時也必須檢查敵機是否被飛彈擊中?是否撞到玩家?是否飛出舞台外面?

我們可以利用隨機數來計算追蹤玩家與發射子彈的機率,例如:「隨機取數從 1 到 50」等於 1,意思是有 50 分之 1 的機會;「隨機取數從 1 到 200」等於 1,意思是有 200 分之 1 的機會,這個機率可以自行調整,請務必測試效果如何,避免遊戲難度過高或過低。

由於敵機有時候會同時出現數架, 如果這些敵機同時發射子彈,子彈必須移動到發射者的位置上才可以顯示出來。我們要如何紀錄每一架敵機的位置呢?如果使用變數的話,我們並不知道需要多少變數才夠用,這個時候正是「清單」派上用場的好時機。

請建立一個清單「子彈」,用來儲存戰鬥機發射子彈時的位置,第一項資料為 X 座標,第二項資料為 Y 座標。

敵機的爆炸特效,請參考附錄的說明。

第二種敵人是飛龍重型轟炸機,會從舞台方出現朝飛行,飛機出現的位置使用隨機數決定。請建立一個新變數「健康」,用來設定大型轟炸機的硬度,也就是被飛彈擊中直到擊沈所需的次數。這個數字可以自行調整。

轟炸機的飛行高度比較低,所以不會與玩家發生碰撞移動速度較慢,設為 1,發射子彈的機率比較高,設為 100 分之 1。被飛彈擊中時,將「健康」減去 1,當「健康」為零時轟炸機被擊沈,得到的分數為戰鬥機的 5 倍。

敵機的爆炸特效,請參考附錄的說明。

子彈發射

請點擊「子彈」角色,切換到「程式」頁面。「當綠旗子被點擊」時,先將清單「子彈」清空,以便重新開始遊戲。先將角色的本體隱藏起來。

子彈角色的主迴圈中,檢查清單「子彈」的長度,如果為零,表示還沒有敵機發射子彈,這種情況需要繼續等待,一直到有子彈被發射為止。

清單「子彈」有資料時,讀取清單中的第一項設定為子彈的 X 座標,然後刪除第一項資料,這時候原本的第二項資料會往上移變成是第一項資料,再次讀取清單中的第一項資料,然後設定為子彈的 Y 座標,並再次刪除資料完成清單「子彈」的處理後,建立自己的分身。

當子彈分身產生時,將分身顯示出來朝玩家的方向的前進,速度可以自行調整,檢查子彈是否跑出舞台外面,或者是碰撞到玩家角色,這兩種情況都要刪除分身。

如果是碰到玩家角色,也必須將「生命」減去 1

附錄:爆炸特效

素材包裡有附上兩個爆炸特效,「爆炸」是給敵人的戰鬥機使用,「大爆炸」則是給玩家和大型轟炸機使用。請點擊「爆炸」角色,切換到「程式」頁面。

為了記錄每一架爆炸的飛機座標,我們需要使用清單「爆炸」和「大爆炸」。

在零式戰鬥機的程式中,尋找被「飛彈」擊中和碰撞「玩家」的條件判斷,在「分身刪除」之前先將 X 座標與 Y 座標添加到「爆炸」清單。

飛龍重型轟炸機的程式中,尋找被「飛彈」擊中的條件判斷,在「分身刪除」之前先將 X 座標與 Y 座標添加到「大爆炸」清單。

「敵人」角色的條件判斷

「大敵人」角色的條件判斷

請將「子彈」角色的「當綠旗子被點擊」程式碼,複製到「爆炸」和「大爆炸」中,然後點擊「爆炸」角色將清單的名稱從「子彈」修改為「爆炸」。撰寫「爆炸」角色的分身程式,由於爆炸角色有六個造型,所以要重複六次切換造型。注意:先將造型切換到最後一個造型再顯示出來,因為最後一個造型的下一個造型,就是第一個造型。

點擊「大爆炸」角色將清單的名稱從「子彈」修改為「大爆炸」,並撰寫分身程式,直接複製「爆炸」角色的分身程式進行修改,要改的地方只有音效選單。

「爆炸」角色的分身程式

「大爆炸」角色的分身程式

與轟炸機的角色不同,玩家爆炸的效果,可以使用本體執行,畢竟玩家只有一個,其位置可以使用「定位到玩家位置」取得,不需要透過清單的輔助。而且兩者之間有一個很大的差異,轟炸機爆炸不應該結束遊戲,而玩家爆炸則需要。因此,不使用分身設計,比較容易控制結束程式的時間點。

點擊「大爆炸」角色後,複製分身程式的所有積木,在迴圈前面加入「定位到玩家位置」積木,在最後結束的地方,加入「結束全部」積木,結束整個遊戲。