资源简介 经典游戏《坦克大战》(今日任务:)将经典游戏《坦克大战》还原于 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)作为一个游戏来说, 没有添加计时器和积分变量显然是不合适的, 自行添加吧! 展开更多...... 收起↑ 资源预览