单元四

第15课 飞机大战-显示敌机

任务场景:飞机大战-显示敌机
任务场景:飞机大战-显示敌机

一、任务目标

随机写出敌机坐标;横坐标相同就判定打中。

二、我们要学什么

  • 学习要点:敌机坐标|屏顶随机写出再判定
  • 本课过关:能完成:说出敌机用 X 坐标在 y=0 画矩形,打中看两个 X 是否相同;载入编程体验,指出若屏顶没有白色像素就随机写出敌机 X 并画 10×10 矩形;再运行完整程序,指出发射后若敌机 X 等于本机 X 就视为打中。
  • 示例对齐:编程体验对应 「4-3-1 飞机大战-显示敌机」;完整程序对应 「4-3-2 飞机大战-消灭敌机」。

三、本节要点

本课要利用彩屏做游戏认识敌机坐标:用读取像素判断屏顶有没有敌机,没有就随机写 X 并画矩形。重难点是分清两套——编程体验只显示敌机;完整程序发射后比较敌机 X 和本机 X。要点对齐「敌机坐标|屏顶随机写出再判定」。

1读场景屏顶出现敌机,对上位置才算打中
2对要点敌机坐标|屏顶随机写出再判定
3载入运行十学期兴趣课程积木/代码

四、解题思路

任务:利用彩屏做游戏,用两套程序认识显示敌机——屏顶用坐标画矩形,打中看横坐标是否相同。编程体验只保证屏顶有一架敌机;完整程序发射后比较两个 X。请对照屏顶白点和发射。

本课主要用到:彩屏 TFT;按键 A1、B1、B2;蜂鸣器。

  1. 1利用彩屏做游戏,观察屏顶是否出现白色小矩形,发射后如何判定。
  2. 2横扫 x=0 到最大值:若某点像素为白色,视为敌机已在。
  3. 3没有敌机则随机写出敌机 X,在(X×10,0)画 10×10 白矩形。
  4. 4A1、B1 改本机 X,B2 发射子弹(Y 递减画矩形)。完整程序发射后比较敌机 X 和本机 X。对照屏顶敌机和是否打中。
  5. 5完成补全与从头编写,并对照现象。

流程示意

扫描屏顶像素没有就随机写敌机X在y=0画矩形B2发射子弹完整程序比较两个X完成补全与从头编写并对照现象

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
读取像素颜色
显示获取某坐标当前颜色。在(x×10,0)读取颜色。等于白色就认为敌机还在,跳出扫描。
跳出/继续循环
控制break 结束循环,或 continue 进入下一轮。扫描到白色像素后跳出,不再继续找。
文字转数字
数学把数字字符串解析为数值。把坐标运算结果转成整数,才能作为像素位置去读颜色。

六、知识点讲解

敌机坐标用屏顶像素判断在不在,不在就随机写 X 并画矩形。完整程序发射后比较敌机 X 和本机 X,相同视为打中。

先弄清:先保证屏顶有敌机坐标,再比较两个 X;再进编程练习对照。

七、编程练习

点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木均来自 MixGo SANT 十学期兴趣课程/学期7。若题目带外设 design,载入时会自动导入接线。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

十学期兴趣课程:4-3-1 飞机大战-显示敌机.mix。载入后运行。

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:编程体验若屏顶没有白色像素,会随机写出敌机 X 并在 y=0 画矩形。

  2. 判断:编程体验发射后会比较敌机 X 和本机 X 来判定打中。

  3. 本课如何判断屏顶已经有敌机?

  4. 编程体验和完整程序的主要差别是?

  5. 运行完整程序,发射时敌机 X 等于本机 X 表示?

九、本节小结

本课认识敌机坐标:屏顶随机写出再判定。编程体验保证屏顶有一架敌机;完整程序发射后比较敌机 X 和本机 X。