打飞机游戏

昨晚临睡前突然手痒想搞点小项目,正好看到群友在聊童年玩的街机游戏,脑子一热就决定复刻个打飞机小游戏。说干就干,打开电脑就栽进代码里去了。

第一步:搭架子

先用python的pygame库搭框架。装环境就踩了个坑:python版本和pygame不兼容。折腾半小时重装3.7版本才把窗口弹出来,黑底白字的空窗口看着真寒酸。

  • 画布尺寸设成800x600
  • 帧率锁定60怕烧显卡
  • 标题改成了"老张土味打飞机"

第二步:搓飞机

从素材网扒了张二流战斗机图片当主角。控制移动的代码写得想骂娘,按左键飞机会鬼畜抽搐。后来发现是没处理连续按键事件,加了个键盘状态检测才让飞机像喝了醒酒汤一样稳住。

  • 移动速度调了8次才不飘
  • 边界判定让飞机卡在墙里半截
  • 碰撞体积比贴图小一圈

第三步:搞敌机

敌机用红色方块随便代替,结果生成逻辑写成每秒蹦20架,满屏敌机跟马蜂窝似的。赶紧改成随机生成,还加了三种类型:

  • 小飞机:1发子弹就打爆
  • 中飞机:要挨3发
  • Boss机:得追着打10秒

最头疼的是子弹碰撞检测,子弹总从敌机胳肢窝穿过去。气得把检测区域调大两倍才勉强打中。

第四步:加特效

爆炸效果用五毛特效gif图凑合,音效更离谱:自己用嘴噗噗噗录的射击音。测试时开着外放,老婆冲进书房问是不是在放屁,尴了个大尬。

  • 得分字体像得了帕金森在抖
  • 生命值图标像被啃过的苹果
  • Boss出场闪红光像发情的猴子屁股

翻车现场

以为大功告成时发现子弹能打爆自己飞机!查了两小时才发现检测代码把玩家和敌机ID搞反了。改完已经凌晨三点,玩自测把自己玩high了,结果被邻居砸门说爆炸音效太吵。

现在这破游戏勉强能玩,代码写得像被狗啃过。但看到自己操控的小飞机突突突打爆敌机时,差点在电脑前笑出猪叫。下回得记着:做游戏千万别自己配音,容易引发家庭矛盾!