Wikijunior:樹莓派/Scratch遊戲 – 迷宮
Andrew Oakley 編寫的教程
公共領域 2016年4月24日
www.cotswoldjam.org
本教程使用Scratch 1.4版。它可以在樹莓派、PC或Mac上執行。
Words you will see on the screen, or that you need to type in, are highlighted like this在輸入完內容後,通常需要按↵ Enter鍵。但是Scratch中沒有太多打字操作 – 它主要使用滑鼠。
你的導師應該已經從以下網址下載了本教程的檔案:http://www.cotswoldjam.org/downloads/2016-04
你的導師應該已經解壓縮了檔案並將其儲存在/home/pi/scratch/maze資料夾中。你的導師可能需要建立scratch和maze資料夾。

點選選單 - 程式設計 - Scratch啟動Scratch。
點選視窗右上角的大正方形圖示最大化視窗。現在它應該充滿整個螢幕。
你還可以看到綠色旗幟,它啟動程式,以及紅色停止按鈕,如果程式出錯,可以使用它停止程式。
Scratch使用“舞臺”一詞來描述螢幕背景,並使用“角色”一詞來描述居住在遊戲中的角色、物體或怪物。
我們已經為你建立了舞臺和角色。透過點選檔案選單 - 開啟 - 點選Pi - Scratch - maze - maze1載入它們。如果系統詢問你是否要儲存當前專案,請點選否。

點選“人物”。
| 確保你選擇了“人物”,而不是“樹莓”。 |
Scratch中的程式設計是使用積木完成的。有很多不同的積木,它們按類別組織。
接下來,點選“控制”。你將看到控制積木。
將“當空格鍵被按下”拖到螢幕中間的指令碼區域。
(要拖動某個東西,用滑鼠指向它,按住滑鼠左鍵,在移動滑鼠到目標位置時保持按鍵按下,然後鬆開滑鼠鍵)
當按下向右→箭頭鍵時,我們希望移動遊戲中的角色。
點選“當空格鍵被按下”中空格旁邊的黑色三角形。將“空格”更改為“向右箭頭”。

點選“外觀”部分。
將“將x改變10”拖動到“當向右箭頭鍵被按下”的下方,使其鎖定。
為“向左箭頭”建立另一組指令碼。
在向左箭頭指令碼的“將x改變10”中,點選黑色三角形並將10更改為-10(負十)。使用delete和← Backspace鍵擦除10,然後輸入:-10
按下向左←和向右→箭頭鍵。角色應該向左和向右移動。
注意角色如何能夠穿過左側的藍色迷宮牆。
樹莓是否在移動而不是人物?正如我們在本章開頭所說,確保你選擇了“人物”,而不是“樹莓”。
如果你在設定程式時遇到困難,可以載入“maze2”檔案。


我們將使用變數來測試角色是否撞到了牆。
變數就像一個盒子,裡面裝有東西,通常是數字或單詞。我們將建立一個名為movex的盒子來存放數字。然後我們將檢查將角色移動那麼多位置是否會撞到牆。如果他們撞到了牆,我們將把角色再移回去。
我們還將建立一個子程式來執行牆體檢查。子程式是可以由其他指令碼呼叫的指令碼。在Scratch中,我們使用“廣播”命令來呼叫子程式,並使用“接收”來定義子程式的作用。
轉到變數並點選“製作變數”。
輸入:movex…並點選確定。確保“movex”中沒有空格。
我們需要刪除“將x改變10”。抓住“將x改變10”並將其移出指令碼框 – 例如,將其移回控制區域。它將消失。
在變數中,抓住“將movex設為0”並將其貼上到“當向右箭頭鍵被按下”下方。
點選值0並將“將movex設為0”更改為“將movex設為10”(十)。
現在轉到'控制並抓住“廣播並等待”積木。將其貼上到“將movex設為10”下方。
使用黑色三角形建立一個名為:domovex的新廣播
對左箭頭重複上述步驟。記住使用-10而不是10。
現在透過將“當接收到domovex”從控制部分拖到指令碼部分建立一個新指令碼。
從外觀部分,抓住“將x改變”並將其貼上到“當接收到”下方。
從'變數部分,抓住“movex”並將其貼上到“將x改變”上。現在它應該顯示為“將x改變movex”。
從控制部分,抓住“如果”並將其貼上到“將x改變”下方。
從偵測部分,抓住“碰到顏色”並將其貼上到“如果”上。
點選“碰到顏色”中的深藍色方塊,然後從迷宮中選擇一個寶藍色牆壁顏色 – 滑鼠指標將變成吸管;將其指向藍色牆壁並點選。
從外觀部分,抓住“將x改變”並將其貼上到“如果”內部。
從運算部分,抓住“[] - []”(減號,減去)並將其貼上到“將x改變”上。

將[]-[]更改為0-movex(從變數部分獲取movex)。0是零。
如果你在設定程式時遇到困難,可以載入“maze3”檔案。
我們正在做的是移動角色,檢查他們是否撞到了牆,如果他們撞到了牆,則將角色再移回去。
點選綠旗
圖示執行程式。使用左箭頭←和右箭頭→控制人物移動。當人物到達左側的藍色牆壁時停止。

現在,使用y代替x,為上下方向建立相同的指令碼。例如,建立一個名為movey的新變數,一個名為domovey的廣播,並使用“改變y值”。點選綠旗
執行程式。
現在,你應該能夠控制人物在迷宮中四處移動了。
變數movex和movey可能會顯示在迷宮上。你可以在**變數**部分取消選中它們的複選框來隱藏它們。

在每個domove指令碼的末尾,廣播一條名為“checkwin”的新訊息。建立一個名為“checkwin”的新指令碼,並檢查人物是否接觸到紅色樹莓的顏色。
從外觀積木中,使用“說”指令告訴玩家他們贏了。記住在玩家獲勝後將人物重置到其初始位置。
你也可以在點選綠旗時重置人物的位置,以防程式中途停止。
如果你在設定程式時遇到困難,可以載入檔案“maze4”。
你可以透過新增一個計數器來統計移動次數,使遊戲變得更好。
你需要建立一個名為“count”的變數。
你還需要一個“如果…否則”積木,而不是普通的“如果”積木。你可能需要向下滾動積木列表以找到“如果…否則”。“如果…否則”允許你在條件為真(人物觸碰藍色)時執行一項操作,在條件為假(人物未觸碰藍色)時執行另一項操作。
將domovex和domovey的“如果”指令更改為“如果…否則”指令。如果人物移動但沒有撞到牆(“否則”部分),則“改變count值加1”(這在變數積木中)。
記住要確保選中變數“count”旁邊的複選框,以便你可以看到玩家移動了多少次。**請參閱程式“maze5”以獲取示例。**
本教程的原始PDF可以從維基共享資源獲得。
