昨晚临睡前突然手痒想搞点小项目,正好看到群友在聊童年玩的街机游戏,脑子一热就决定复刻个打飞机小游戏。说干就干,打开电脑就栽进代码里去了。
第一步:搭架子
先用python的pygame库搭框架。装环境就踩了个坑:python版本和pygame不兼容。折腾半小时重装3.7版本才把窗口弹出来,黑底白字的空窗口看着真寒酸。
- 画布尺寸设成800x600
- 帧率锁定60怕烧显卡
- 标题改成了"老张土味打飞机"
第二步:搓飞机
从素材网扒了张二流战斗机图片当主角。控制移动的代码写得想骂娘,按左键飞机会鬼畜抽搐。后来发现是没处理连续按键事件,加了个键盘状态检测才让飞机像喝了醒酒汤一样稳住。
- 移动速度调了8次才不飘
- 边界判定让飞机卡在墙里半截
- 碰撞体积比贴图小一圈
第三步:搞敌机
敌机用红色方块随便代替,结果生成逻辑写成每秒蹦20架,满屏敌机跟马蜂窝似的。赶紧改成随机生成,还加了三种类型:
- 小飞机:1发子弹就打爆
- 中飞机:要挨3发
- Boss机:得追着打10秒
最头疼的是子弹碰撞检测,子弹总从敌机胳肢窝穿过去。气得把检测区域调大两倍才勉强打中。
第四步:加特效
爆炸效果用五毛特效gif图凑合,音效更离谱:自己用嘴噗噗噗录的射击音。测试时开着外放,老婆冲进书房问是不是在放屁,尴了个大尬。
- 得分字体像得了帕金森在抖
- 生命值图标像被啃过的苹果
- Boss出场闪红光像发情的猴子屁股
翻车现场
以为大功告成时发现子弹能打爆自己飞机!查了两小时才发现检测代码把玩家和敌机ID搞反了。改完已经凌晨三点,玩自测把自己玩high了,结果被邻居砸门说爆炸音效太吵。
现在这破游戏勉强能玩,代码写得像被狗啃过。但看到自己操控的小飞机突突突打爆敌机时,差点在电脑前笑出猪叫。下回得记着:做游戏千万别自己配音,容易引发家庭矛盾!