有些孩子本身對數(shù)學(xué)題的理解能力不錯可惜就是在基礎(chǔ)運(yùn)算上容易出錯導(dǎo)致成績不好,一般會說這是粗心造成的,其實這還是缺乏足夠的計算鍛煉。為了能讓孩子能夠快樂地訓(xùn)練枯燥的計算題,提高計算熟練度,作為老師的我就想到了用Scratch做一個植物大戰(zhàn)僵尸版的算術(shù)游戲,讓孩子們能夠在游戲中練習(xí),讓學(xué)習(xí)變得不再枯燥。今天和大家一起分享一下制作游戲的過程吧(圖1)。
游戲的角色共有豌豆射手、僵尸、豆豆子彈這三個。游戲中豌豆射手隨機(jī)給出簡單的計算題,收到正確答案后發(fā)射豌豆子彈,僵尸不斷向左移動,當(dāng)受到4次攻擊后消失,屏幕右邊出現(xiàn)新的僵尸開始下一輪計算訓(xùn)練。如果僵尸碰到豌豆射手則游戲失敗。當(dāng)程序開始運(yùn)行后,背景廣播“僵尸出發(fā)”,僵尸收到消息開始前進(jìn),游戲正式開始。
豌豆射手角色負(fù)責(zé)控制和用戶交互的部分:詢問簡單的計算題目,等待用戶輸入正確的答案。詢問的題目來自隨機(jī)數(shù),用隨機(jī)1到3代表加減乘三種計算題,除法考慮到會遇到循環(huán)小數(shù)的問題沒有包括在內(nèi)。例如當(dāng)隨機(jī)數(shù)為1時,出加法題,以此類推。隨機(jī)從1到10中取兩個變量“數(shù)字1”和“數(shù)字2”用來參與計算。數(shù)字取值范圍決定了計算難度,如果改成20以內(nèi)的四則運(yùn)算,難度就可以提高不少,還需要相應(yīng)降低僵尸速度。
當(dāng)用戶回答正確的答案后,廣播“發(fā)射豆豆”,啟動豆豆子彈的腳本同時,豌豆射手開始詢問下一題。當(dāng)豆豆子彈角色收到發(fā)射指令后,向右移動,直到豆豆擊打到僵尸后隱藏。
僵尸碰到豆豆子彈扣25點(diǎn)血量,僵尸從游戲開始向豌豆射手方向移動,當(dāng)碰到豌豆射手后,玩家游戲失敗,結(jié)束游戲。
游戲的重點(diǎn)之一在于僵尸被擊打后,要判斷剩余血量,判斷玩家是否消滅當(dāng)前僵尸了,該放出下一個僵尸還是讓玩家繼續(xù)計算下一題。
在Woods中分別添加兩行字,作為游戲中和游戲失敗后的背景造型。我們在舞臺背景中放置了啟動整個游戲的腳本。內(nèi)容很簡單,程序運(yùn)行后,設(shè)置僵尸的移動速度為10,切換到正確的背景,并且設(shè)置廣播:“僵尸出發(fā)”,通知其他角色游戲開始了(圖2)。
當(dāng)角色收到“僵尸出發(fā)”的廣播后,水桶僵尸向左(90度方向)以10的速度移動。如果僵尸碰到了豌豆射手則廣播:“你失敗了”,換成提示失敗的背景造型,隱藏自身,停止所有腳本,游戲結(jié)束(圖3)。
在水桶僵尸的移動過程中,玩家可以靠正確回答問題來對僵尸進(jìn)行攻擊,當(dāng)用戶每回答正確一道題目后,發(fā)射一顆豆豆子彈,豆豆子彈碰到僵尸后發(fā)出廣播“僵尸被打”,僵尸收到廣播后血量扣25點(diǎn),如果僵尸的血量等于0時,玩家成功擊退一只僵尸,等待數(shù)秒后,僵尸移動到原來位置,恢復(fù)最初的血量(圖4)。
當(dāng)收到“僵尸出發(fā)”廣播后,觸發(fā)“出題”的廣播,首先新建一個變量運(yùn)算符從1到3之間產(chǎn)生一個隨機(jī)數(shù),當(dāng)運(yùn)算符等于1時做加法運(yùn)算,等于2時做減法運(yùn)算,等于3時做乘法運(yùn)算。兩個變量“數(shù)字1”和“數(shù)字2”分別用作為參與計算的數(shù)字。當(dāng)用戶的回答和正確答案相一致的時候,廣播“發(fā)射豆豆”。如果答案錯誤,豌豆射手則說:“答案錯誤”(圖5)。
豆豆子彈角色在收到“發(fā)射豆豆”廣播后,從豌豆射手位置,重復(fù)X坐標(biāo)增加10,向右移動。碰到僵尸發(fā)出廣播“僵尸被打”,僵尸扣血,之后隱藏(圖6)。
根據(jù)小朋友的反映來看,游戲還是挺受歡迎的,我也很高興他們能夠從游戲中體驗到學(xué)習(xí)的快樂。大家也可以在制作這款游戲的過程中加入自己的獨(dú)創(chuàng)性想法。