項目實戰課程之尋找蛋糕(三)
來自專欄阿達老師
## 複習上節課學習的內容
小朋友們好!我是阿達老師。我們上節課學習了使用自定義模塊製作自已的演算法小積木,用自已製作的小積木代碼塊實現了繪製迷宮圍牆的效果,這節課我們繼續完成《靈找蛋糕》遊戲項目,
## 本節課知識點
1、使用循環演算法結構和條件判斷演算法結構操作傑瑞的移動
2、使用碰到顏色代碼塊控制傑瑞在圍牆內移動
## 實現分析
我們要實現通過鍵盤上的方向鍵控制它上下左右移動,並且不能穿過圍牆(視頻展示:傑瑞上下左右移動動畫效果)*
## 視頻實戰
首先打開網易卡搭的編程環境,從事件模塊組拖動`當綠旗被點擊`代碼塊到腳本區,從控制模塊組裡拖動`如果...那麼`代碼塊放到當綠旗被點擊的下方
切換到偵測模塊組,拖動「按鍵空格鍵是否被按下」到前面的條件判斷語句當中,把「空格鍵」改成「右移鍵」,這時這段代碼的意思就是「如果鍵盤上的右移鍵被按下,就執行這個判斷條件里的代碼」,
我們在條件結果當中拖入`面向90度方向`、`將x坐標增加5`兩段代碼
這時我們點擊右移鍵,調試一下,看看傑現是不是能向右移動了,小朋友們,你們發現了什麼?傑瑞沒有動對不對?那是因為什麼呢?
之前我們講過電腦會按照我們寫好的程序一步一步順序的執行,在我們現在寫好的代碼中,當綠旗被點擊時,它會順序執行下面的代碼,也就是它會判斷右移鍵被按下了嗎?當然我們在點擊綠旗的一瞬間,右移鍵當然是沒有被按下的,所以程序不會執行判斷條件中的`將x坐標增加5`的代碼塊,那傑瑞自然也就不能移動了
接下來程序繼續執行,但是我們的程序下方已經沒有任何代碼了,所以,這個演算法結構已經執行完畢,所以我們現在需要實現一段不停的判斷的功能,我們知道無限循環可以實現這個功能的,我們從控制區拖動`重複執行`代碼塊到腳本區
現在讓我們來看一下添加了無限循環後程序是如何運行的吧,當綠旗被點擊時,程序就進入了無限循環中,首先它會判斷一次鍵盤的右移鍵被按下了嗎?由於這個時間向上鍵沒有被按下,所以不會執行中間的`將x坐標增加5`語句,然後我們的程序會繼續向下執行,當執行到程序末尾,由於添加了無限循環代碼,程序會返回到剛剛開始的地方,也就是再次判斷鍵盤右移鍵是否被按下,這個時候鍵盤的右移鍵還是沒有被按下,程序執行完這次循環後,又會回來再次判斷鍵盤上的右移鍵是不是被按下,這個時候如果我們按下了右移鍵,程序就會執行`將x坐標增加5`的代碼了,當然無限循環中的判斷會一直不停的進行,我們只要按下向右移鍵悟空就會一直向 右移動,如果這個時候我們鬆開了右移鍵,程序再執行右移鍵是否被按下的代碼時,發現右移鍵沒有被按下,那程序就不能執行`將x坐標增加5`的代碼了
這下是不是清楚了,我們的演算法腳本里缺少了一個循環判斷的代碼,把它加進來,現在程序就可以正常的運行了
同理,我們現在把向左移動、向上移動、向下移動的代碼一起加進來,老師這裡就不一一說明了,相信聰明的小朋友能夠非常清晰的這三個方向的功能實現代碼了,阿達老師把完整的代碼直接帖過來,和老師一起對比一下,你寫的代碼是不是和阿達老師一樣呢?
好了,現在我們就完成了傑瑞上下左右移動的功能,但是當我們使用上下左右鍵操作傑瑞移動時,傑瑞會跑到迷宮圍牆的外面去,這是不符合我們的場景預設的,我們需要把這個問題解決掉,
在解決這個問題之前,我們還是要做一下分析,我們通過觀察發現迷宮的圍牆都有相同的顏色是不是?所以,我們可以使用***角色碰到顏色***的判斷條件來實現這個效果
我們從控制模塊組裡拖動`如果...那麼`代碼塊放到腳本區,從偵測模塊組裡拖動`碰到顏色`代碼塊放入到條件代碼塊的判斷位置,點擊一下`碰到顏色`代碼塊里的顏色,這裡滑鼠指針變為了小手造型,我們現在移動滑鼠,現在`碰到顏色`代碼塊時的顏色跟隨滑鼠指針會發生變化,我們把滑鼠指針移動到舞台區的棧道處,這時`碰到顏色`代碼塊里的顏色定格為了圍牆的顏色,點擊滑鼠左鍵,這個圍牆的顏色就同步到`碰到顏色`代碼塊里了,這段條件代碼的意思就是:「如果傑瑞碰到圍牆的顏色就讓他執行條件判斷里的代碼」,
那麼我們為了不讓傑瑞橫穿圍牆,需要在判斷結果里添加哪些演算法呢?我們來理一下,在一段循環代碼里,如果傑瑞現在執行的是`將x坐標增加5`,那麼當他碰到圍牆的時候我們讓他執行`將x坐標增加-5`,那傑瑞+5的代碼和-5的代碼抵消了,傑瑞是不是就停下來了啊?所以,我們`將x坐標增加5`的代碼塊拖入剛剛顏色判斷的代碼段里,然後將增加5的數字改為增加-5,代碼如下:
我們再運行一下試試,
好了,傑瑞現在可以在圍牆內移動了,一隻萌萌噠小老鼠已經在開心的四處找食物了,我們今天的課程就到這兒吧,下節課我們完成甲蟲代碼的實現
阿達老師-孩子身邊的編程專家
推薦閱讀:
※? 烘焙DIY:糯米藕的製作方法
※#百家千宴# 幸福烘焙 之胖乎乎可愛【蛋奶排包】
※烘焙教程之
※教你用舊牛仔褲做一雙拼布烘焙手套
※非標數模 自動裝配和焊接機的核心與陶瓷加熱器烤箱一體自動機