資源簡介 經典游戲《坦克大戰》(今日任務:)將經典游戲《坦克大戰》還原于 scratch 程序中,讓學生體驗真實游戲的設計流程和思 路,具體游戲視頻見最下方微課解讀!(1)玩家可以操控一輛己方坦克進行上下左右移動,在移動過程中坦克會被障礙物阻 擋無法逾越必須繞道,玩家可以按下 J 鍵發射子彈,為了避免按下 J 鍵連發,程序中添加了 防止連發的指令;當玩家的子彈擊中障礙物,障礙物會短暫消失,然后還會再度出現,同時, 當子彈擊中了地方坦克, 地方坦克會消失,一會兒還會隨機出現;(2)敵方坦克會在三個不同的位置隨機出現, 并且可以邊移動變發射子彈,敵方子彈 擊中障礙物會擊毀障礙物,同時, 敵方坦克擊中 castle 或者擊中己方坦克,游戲 gameover!(本課重難點:)(1)如何實現己方坦克通過判斷炮管的位置向不同方向發射子彈?(2)敵方坦克在地圖中應該如何移動?(3)敵方坦克碰到障礙物應該作何反應?(4)敵方坦克向不同方向開火問題如何解決?(5)我方坦克、敵方坦克擊中不同目標的判斷?(6)游戲失敗的定義?(任務解讀Thinkingmap:)(白色背景) (被子彈擊中) (被坦克撞到) (背景) (障礙物) (被已方坦克擊中) (/) (坦克大戰) (已方坦克) (在地圖中移動) (敵方坦克) (向四個方向開火功能) (被地方坦克炮彈擊中) (向四個方向開火功能) (移動中碰到障礙物)(Game over背景2)如何界定失敗?(上下左右鍵移動)(移動中碰到障礙物)程序分析:(1)背景:可分為正常背景和失敗背景;(2)己方坦克:鍵盤控制坦克的左右移動;鍵盤控制坦克發射子彈;發射子彈的瞬間判斷坦克的朝向,可以實現向四個 不同的方向發射子彈;被障礙物阻擋做出反應;(3)敵方坦克: 在屏幕指定位置出現;在屏幕上移動; 移動過程中碰到障礙物和邊緣做出反應;可以向四個不同的 方向發射子彈;(4)障礙物:被擊中后一段時間內消失再出現;阻擋坦克。(程序設計:)第一步:搞定背景, 共兩個背景 1 和 2;1 為白色背景, 2 為 game over 背景!第二步:搞定已方坦克(Sprite1)首先完成 Sprite1 的繪制工作:然后, 搞定 Sprite1 的腳本:(1)控制己方坦克上下左右移動的腳本, 不解釋(2)向不同方向開火的腳本解決方案判斷開火時,坦克的 朝向!先猜測一下,誰接收四 個方向開火的廣播?(3)在移動中碰到障礙物或者被地方坦克子彈擊中的解決方案否則無法遮擋住子彈!分別是橫、豎障礙物的角色名!碰到障礙物后退!聰明的你估計已經能猜 到,這三個判斷是判斷 碰到了什么的吧?第三步:已方坦克發射子彈解決方案能猜到是誰廣播的 么?坦克方向朝上時按下 J 鍵發射子彈就位(發射方向)第四步:障礙物解決方案被己方坦克擊中!再度顯示!被敵方坦克擊中, 同樣的效果!消失 然后顯示!第五步:敵方坦克解決方案規定開始出現 位置和朝向!碰到障礙物!后退!改變下次的移動方向!被己方坦克子彈擊中!廣播被擊中,想想誰接收?第六步:已方坦克子彈解決方案(子彈就位!)子彈擊中障礙物!判斷條件! 仔細想想很簡單!不同方 向發射 出去!第七步:castle“老巢”解決方案學案中沒有列舉出更多的程序,比如另外兩個敵方坦克、地方坦克子彈和其他障礙物的腳本, 大同小異, 請自行設計!課后思考(1)該游戲中沒有設置勝利的條件, 思考一下?(2)如何實現坦克朝著 castle 的方向移動攻擊,而不是漫無目的的閑逛?(3)作為一個游戲來說, 沒有添加計時器和積分變量顯然是不合適的, 自行添加吧! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫