坦克大战是一款经典的小游戏,也是我们这次的开发项目。
关于线程的项目开发,本来是有很多选择的,比如弹球,打砖块,雷电等等。由于这类项目我们个人来做可能存在很多问题,所以是以小组的形式做项目。至于为什么选择坦克大战,应该说是我们选择的时候欠考虑了。本来是想选个简单点的,而坦克大战不少人都做过,当时也没想太多,觉得不会太难,就选择了这个。后来在制作过程中发现了不少问题,细想以后发现这个其实比另外几个都还难,下面简单阐述一下坦克大战的开发思路,及和其他项目的区别比较。
我们小组四个人来完成这个项目,由于初次以小组合作的形式来做项目,存在着许多不足之处,导致在制作过程中的很多麻烦。当然,初次合作,我们也有不少做的好的地方。
首先,我们是分工完成。各自挑一部分写。一开始我们想到的类有主界面类,我方坦克类,敌方坦克类,子弹类,各种数据类(包括地图)。我当时负责的是敌方坦克,这个类算是比较好写的一个类,我自己写好的程序是有敌方坦克和己方坦克,能用键盘控制己方坦克自由移动的程度。后来是要把我那个敌方坦克的类整合到主类里去。整合的过程中出现了很多麻烦。比如我们的包名不一样,很多变量名和方法名不一样,都导致了整合时出现问题。之后的总结中我们也提到了这个问题,这是因为我们一开始就没有统一这些东西,只统一了显示界面的大小之类的,没有想到这些。
前期的开发是比较顺利的,地图很快就弄好了,我方坦克和敌方坦克也都弄好了,接下来的首要任务就是加子弹了。子弹是另外一个线程。同时我们也要为坦克都附加一个子弹的属性。后来我们采用了再创建一个坦克类,这个类是我方坦克和敌方坦克的基类,坦克该有的属性都在这个类里,这样就省去了很多麻烦。
剩下的东西就是比较麻烦的。比如解决坦克碰墙问题,子弹发射后打到东西没有停下来,而是直接覆盖了,打到敌方坦克后敌方坦克没有消失等等。这些问题差不多就是我们完成项目的主要障碍了,然后问题一一解决!