陈新龙
飞机大战是一款经典的射击游戏,操作简单,玩法多样,玩家只需要控制自己的飞机左右飞行,躲避或瞄准随机出现的敌机,并发射子弹击落敌机,即可获得游戏积分。在去年《电脑报》的一篇文章中,小陈老师在Scratch中编写了一款软件版的飞机大战,只需要通过方向键和空格键便可控制飞机的运动和发射子弹。今天再做飞机大战自然要有所提高,我们通过掌控板结合mPython编程实现硬件版的飞机大战(图1)。

图1 游戏效果
制作游戏的第一步便是绘制游戏对象,包括我方飞机、敌方飞机、子弹三个对象。游戏中每个对象都有特定的外观和位置,以前制作软件版飞机大战时飞机、子弹的图片都是从外部导入图片来使用的。
硬件版的飞机大战我们需要在掌控板的OLED显示屏上显示,由于掌控板OLED显示屏只有126×64的像素点,为了更好地绘制飞机的外观,我们可以先在Excel电子表格中规划好草图,一个单元格代表一个像素点,然后通过掌控板编程显示在屏幕中。例如图2中黄色数字1表示飞机的原点用(xPlane,yPlane)表示,那么第二行就是绘制直线(xPlane-1,yPlane+1)到(xPlane+1,yPlane+1);第三行同样也是绘制直线(xPlane-1,yPlane+2)到(xPlane+1,yPlane+2)……

图2 Excel模拟飞机外观
为了飞机更逼真,我给飞机的尾部添加了“喷火”效果,通过代码方式可以实现一闪一闪的“喷火”效果(图3)。

图3 新建函数plane绘制我方飞机外形
我方飞机绘制完成后将敌方飞机也绘制完成,敌方飞机比我方飞机略小,我方飞机头部朝上,敌方飞机头部朝下。敌机的原点坐标应该设置在下方(xEnemy,yEnemy),第二行绘制直线(xEnemy-1,yEnemy-1)到(xEnemy+1,yEnemy-1),以此类推。