湊數字的貪吃蛇是如何做出來的
本文只是我的一個筆記,用來記錄 Eva 從冒出點子到完成作品的過程。完全沒有可讀性。僅供感興趣的老師參考。
正好網易卡搭有比賽,我們就商量好我幫她拆解任務,她獨立創作了去參加比賽。
我們先花十分鐘討論清楚遊戲規則:
通過方向鍵操控貪吃蛇移動
貪吃蛇碰到邊緣或碰到自己的身體就會死掉
貪吃蛇吃了蘋果身體就會長一截。
貪吃蛇吃的蘋果上數字是幾,「當前總和」就加幾
有一個「目標數字」,是隨機生成的,貪吃蛇需要把「當前總和」湊成「目標數字」
每吃到一個蘋果加一分,每湊成一次目標數字加十分
完成湊數字後,「當前總和」歸零,「目標數字」變成新的隨機數
如果「當前總和」爆了(超過了「目標數字」),遊戲結束
定好這些規則後,我們又討論了一些細節:
因為蛇需要有選擇的吃蘋果,所以同時屏幕上得有多個蘋果而不能是只有一個,所以應該用和打地鼠遊戲一樣的克隆方式來做,而不能用「讀碼探秘004」中的移動位置來做。
蘋果上的數字可以是1~5,目標數字可以是6~20(後來嫌數字太大玩起來麻煩,改成了6~16)
再然後是拆解任務。
我按著「每做一小步就能測試一下」的原則,幫Eva拆解了任務。(被我拆成了三天的任務。後來我發現拆成三天的方式太折磨她了,做得停不下來,一直在念叨「能不能讓我把明天的先做了啊」。)
第一天,只做一個能吃獵物的蛇頭。
第二天,獵物變成帶數字的蘋果,完成湊數字功能。
第三天,蛇的身體要能變長
這個任務的拆分方法,把蛇頭和蛇身體分開來製作,對Eva來說是很新鮮的,她沒有想過竟然能不把蛇當成一整條蛇來製作。
而我幫Eva定這樣的拆分順序,是因為這樣一來第一天的任務極其簡單,就是打地鼠和走迷宮的結合。開頭的順利能讓她更有信心自己做下去。
每一天編程開始前,我還會和 Eva 討論一下子任務,然後就留給她自己完成。我要求她每個步驟都保存一個中間結果,她有些漏了,最終保存了七份半成品,都在這裡:https://kada.163.com/u/1147046.htm
第一天,只做一個能吃獵物的蛇頭。
1.1 做一個能靠方向鍵操控的蛇頭
半成品1,超簡單
1.2 蛇頭碰到邊緣要死掉
半成品2,超簡單。用矢量圖編輯的方法畫背景的深藍框略廢了點周折,矢量圖的玩法還是不夠熟練。
1.3 添加一個像打地鼠一樣隨機出現又消失的獵物
1.4 蛇頭碰到獵物後就說明吃到了 Score 加1
半成品3,做1.4任務的時候遇到了點困難,我提示可以同時使用多個「當作為克隆體啟動時」讓程序並發運行,然後恍然大悟,後面就順利了。
第二天,獵物變成帶數字的蘋果,完成湊數字功能。
2.1 把獵物換成帶數字的蘋果
2.2 添加「當前總和」變數並在吃了蘋果後增長
2.3 添加「目標數字」變數,並添加「檢查數字」的邏輯
2.4 每次完成湊數後要 Score 加 10 並開始新一輪
整個過程只保存了一個「半成品4」
後三步她大概是一起完成的。發現比較變數的大小關係、使用條件判斷語句之類的任務,對小傢伙來說挺簡單的。之前用到這些的代碼也總能一次寫對。
我在試玩後提建議,她添加了蘋果消失前閃動幾下的特效
第三天,蛇的身體要能變長
3.0 讀「讀碼探秘004」理解蛇的身體是怎麼跟著蛇頭動的,長長又是怎麼回事
Eva讀的時候覺得簡單,自己做的時候又一頭霧水,回過頭來重新讀
3.1 完成一條身體一直在變長的蛇,蛇頭就像拉長橡皮筋一樣往前走
半成品5,這裡遇到一個很詭異的問題,一開始蛇的身體不斷變長看起來很好,後來中間出現了空格,最後乾脆沒有克隆了。我幫著一起debug了很久,猛然想起Scratch對克隆數量有限制,不同角色克隆體總數超過一定量後就不能再克隆了。於是把克隆速度放慢,果然蛇的身體又長了一些。考慮到真正遊戲中蛇尾巴的克隆體是會被刪除的,這個問題也就不擔心了。
3.2 完成一條身體長度固定的蛇,添加碰到身體就死掉的邏輯
半成品6,身體長度固定很容易。「碰到身體就死掉」的邏輯一開始很簡單,當身體的克隆碰上蛇頭,結果這個邏輯一加上就死:原因很簡單,蛇身體總是緊跟著蛇頭,當然就是一直碰到蛇頭啦。然後才明白為什麼「讀碼探秘004"中的偵測是靠蛇頭上特別顏色的眼睛,然後給蛇頭畫了一條長舌頭。
3.3 完成一條身體長度可變的蛇
半成品7,邏輯很簡單,很快就走了。
額外的第四天:
修修補補,提交參賽。
說實話我覺得作品其實可以從「讀碼探秘005」中學些技巧好好再美化下,可 Eva 已經急不可耐的玩起來了。算了,丑就丑吧,過程中的收穫和完工後的成就感最重要。


TAG:南瓜博士 |