## 回顧
經過前面十節課基礎知識的學習,相信小朋友們已經掌握了一些基本的scratch編程技巧了,后面的課程我們將通過項目實戰的方式來系統的運用之前學習過的基礎功能模塊進行編碼,話不多說,我們來看一下今天要做的項目吧。
項目名稱:尋找蛋糕

小朋友們看我們界面效果,應該可以猜到這是一個迷宮項目,迷宮游戲是世界上最早出現,也是最流行的游戲之一。在迷宮里需要快速思考,來判斷最優化路徑,并且能夠熟練快速操作角色,通過發現的最優化路徑,其間還需要躲避怪獸,收集寶物,以上這些元素我們今天這個游戲里統統都有,我們開始吧
小老鼠杰瑞很餓,它被困在的迷宮里,同時,它也聞到了蛋糕的幽香。我們通過上帝視角可以看到蛋糕被放在一個精美的蛋糕盒里,我們現在要幫助它找到蛋糕,同時還需要注意躲避邪惡的甲蟲,并且還要小心幽靈,碰到幽靈和甲蟲中的任何一個游戲就會結束
我們分別要對 杰瑞、甲蟲、幽靈 三個角色進行編碼,
## 杰瑞:
我們要實現通過鍵盤上的方向鍵控制它上下左右移動,這部分我們在《基礎知識的第六課--鍵盤方向鍵的使用》當中已經學習過了,大家一起復習一下吧
## 甲蟲:
甲蟲沿著墻壁快速爬行,當碰到墻壁的時候,它會隨機調轉方向,當杰瑞磁到甲蟲的時候游戲就結束
## 幽靈:
幽靈可以從墻的上方飄過,它們會出其不意的出現在舞臺區的任何位置,然后又消失,當杰瑞磁到幽靈的時候游戲同樣結束
這個游戲可以設計出無數個版本,你可以通過調整甲蟲和幽靈的移動速度來增加難度,也可以通過改變迷宮的形狀來創造屬于自已的版本,趕快試一試吧。
《尋找蛋糕》這個項目需要用三到四節課的時間來完成,我們這節課先來實現通過鍵盤控制杰瑞移動的代碼吧,
首先,我們先要設置舞臺的背景區,也就是要設置迷宮的道路區域,這部分我們可以自由發揮,我們可以在白紙上畫一個迷宮的形狀,然后用手機把我們設計的迷宮道路拍下來,上傳到電腦,再導入成為我們的背景,
也可以直接設置一個藍色背景,然后自已畫迷宮道路,在這里阿達老師使用的是第二種方式,用畫筆模塊組里的代碼塊畫了一個迷宮道路,畫筆的使用技巧我們在自定義模塊的課程中已經學習過了,阿達老師把實現代碼公布一下,有興趣的同學可以學習一下,

其次,我們要設置角色區,杰瑞小老鼠、幽靈、小甲蟲都是scratch自帶的角色,我們直接導入就可以了,
接下來,我們來實現一下按下鍵盤上的左移鍵,讓杰瑞向左移動的代碼,先從事件模塊組里拖動“當綠旗被點擊”代碼塊到腳本區, 再從控制模塊組里拖動“如果...那么...”放到綠旗被點擊的下方,

切換到偵測模塊組,拖動“按鍵空格鍵是否被按下”到前面的條件判斷語句當中,把“空格鍵”改成“右移鍵”,這時這段代碼的意思就是“如果鍵盤上的右移鍵被按下,就執行這個判斷條件里的代碼”,

我們在條件結果當中拖入“面向90度方向”、“將x坐標增加5”兩段代碼

這時我們點擊右移鍵,調試一下,看看杰現是不是能向右移動了,小朋友們,你們發現了什么?杰瑞沒有動對不對?
我們來看一下之前我們在悟空找回金箍棒的項目中遇到同樣的問題是如何解決的吧:
*在我們現在寫好的代碼中,當綠旗被點擊時,它會順序執行下面的代碼,也就是它會判斷右移鍵被按下了嗎?當然我們在點擊綠旗的一瞬間,右移鍵當然是沒有被按下的,所以程序不會執行判斷中的移10步的代碼,*

*接下來程序繼續執行,但是我們的程序下方已經沒有任何代碼了,所以,這個算法結構已經執行完畢,所以我們現在需要實現一段不停的 判斷的功能,我們知道無限循環可以實現這個功能的,我們從控制區拖動無限循環代碼出來,*

*現在讓我們來看一下添加了無限循環后程序是如何運行的吧,當綠旗被點擊時,程序就進入了無限循環中,首先它會判斷一次鍵盤的上鍵被按下了嗎?由于這個時間向上鍵沒有被按下,所以不會執行中間的移動10步語句,這個時間呢我們的程序會繼續向下執行,當執行到程序末尾,由于添加了無限循環代碼,程序會返回到剛剛開始的地方,也就是再次判斷鍵盤向上鍵是否被按下,這個時候鍵盤的上鍵還是沒有被按下,程序執行完這次循環后,又會回來再次判斷鍵盤上的上鍵是不是被按下,這個時候如果我們按下了向上鍵,程序就會執行移動10步的代碼了,當然無限循環中的判斷會一直不停的進行,我們只要按下向上鍵悟空就會一直向前移動,如果這個時候我們松開了向上鍵,程序再執行向上鍵是否被按下的代碼時,發現向上鍵沒有被按下,那程序就不能執行移動10步的代碼了,*
這下是不是清楚了,我們缺少了一個循環判斷的代碼,加進來試一下吧

OK,現在可以正常的向右移動了
同理,我們現在把向左移動、向上移動、向下移動的代碼一起加進來,

好了,現在我們就完成了杰瑞上下左右移動的功能,但是杰現現在會跑到迷宮的外面去,

這個問題我們鶹到下節課繼續講解,今天就到這里吧,明天見
- scratch課標
- 第一課
- scratch編程環境
- scratch介紹
- scratch編程環境各區域詳解
- 課堂實戰
- 第二課
- 知識點:讓角色動起來
- 課堂實戰一:小松鼠跳過河-設置角色名稱和大小
- 課堂實戰二:小松鼠跳過河-模擬重力加速度效果
- 第三課
- 知識點:程序的入口和出口
- 知識點:程序的三種執行結構
- 課堂實戰
- 第四課
- 知識點:角色造型概念
- 課堂實戰:唐詩繪本
- 第五課
- 知識點:角色特效展示&隨機數使用
- 課堂實戰
- 第六課
- 知識點:鍵盤方向鍵使用
- 第七課
- 知識點:偵測模塊之碰到顏色
- 課堂實戰:迷宮
- 條八課
- 知識點:克隆實現
- 課堂實戰:豌豆射手
- 第九課
- 知識點:變量應用
- 第十課
- 知識點:程序進階之自定義模塊
- 第十一課
- 知識點:精美的幾何世界之畫筆使用
- 課堂實戰進階:九九乘法表實現
- 第十二課
- 項目實戰:尋找蛋糕(一)
- 課堂實戰
- 咨訊
- 韓國將"編程"納入小學必修課程
- 家長認知
- STEAM教育理念應用的鑰匙-scratch少兒編程語言
- 習大大主持開幕的人工智能大會上講了啥
- 9.19 習大大主持開幕的人工智能大會講了啥