好像挺久没更新优化续篇了,其实是过了一个劳动节,节后又开始继续功能深挖。
5月5日,劳动节放假最后一天,应邀见了梁博与门博,并在梁博的写字楼空间里面参加了下他们公司的基本情况。
门博从中撮合,感觉梁博想招揽我过去他们团队的感觉,不急,再等等看。
节后初步想法是,将目前的游戏版本向“关卡制”的方式进行探索,那么就涉及了几个需要考虑与待解决的问题:
1、游戏画面最好修改为滚轴滑动的方式;
2、敌机BOSS在什么时机入场,我觉得按惯例是游戏背景图片滑动到顶端后,背景图片不动的时候;
3、敌机BOSS入场后,是静止的,还是动态的?
4、敌机BOSS的子弹系统设计的合理性,应该考虑可以逼迫我方飞机到处闪躲,并且避免明显的子弹真空地带;
5、敌方BOSS被消灭后,不再调用GAME OVER画面,而转而调用VICTORY画面;
6、VICTROY画面里面,是否有下一关的按钮,如果有下一关,如何调用?
… …
5月6日,初步探索了一下,解决了上面的第一个问题,即实现了背景图片的滚动效果,并可根据是实战,还是调试阶段,而自由设置滚动速度(滚动速度的快慢决定了遇见BOSS的快慢)。
5月7日,解决了上面的第二、第三、第四、第五个问题。关键点总结如下:
敌机BOSS目前设置为,在背景图片background.png的左上角滑动到(0,0)时触发BOSS敌机出现的(添加了一个boss_appear的判断开关进行控制)。
敌机BOSS入场后,当MOVE到50像素时,不再移动,保持静止状态,开始发射子弹。
子弹分为直行子弹与散弹两种,发射频率不一样,可以由此控制游戏的难易程度。
敌机BOSS在被消灭后,遇到几种异常情况:
1 | 第一种情况: |
解决办法:
引入新的判断开关use_victory_screen,默认时为False。
将主程序LOOP的跳入条件进行修改,变更为:if not pause and LIFE_NUM and use_victory_screen == False:
然后在敌机BOSS的爆炸事件完成后,设置use_victory_screen = True,直接在主程序LOOP转向,调用VICTORY画面。
接下来,将考虑在VICTORY画面添加进入下一个关卡的控制按钮,并探索关卡制的跳转原理。
实现后的游戏画面如下: