小组项目第二周总结

项目进展

经过几次小组讨论交流,我们有了一些初步的设计思路,下面具体阐述:
1.首先了解雷电游戏含有哪些元素,粗略统计一下有主人公的战斗机,有各种大大小小的敌机BOSS,有提升武器的buff道具,有密密麻麻的子弹,有血条显示板。当然,一些什么华丽的击杀特效,游戏音效这些可以后期添加,开发项目之初暂不考虑。我们这里只是进行设计简单的实现游戏。
2.先设计最简单的子弹陷阱,我们简称危险品类trap.java,子弹会从敌机与主人公驾驶的飞机生成,子弹会进行掉落运动。BOSS生成的陷阱是禁止不动的,所以危险品有一个isStatic是否静止不动的布尔型标识,然后危险品在不是禁止不动的时候y坐标要减少就是下落,然后停止。所以在构造函数中随机一个目标y值,危险品非禁止不动状态下y坐标不断减少,当低于最低y值时候就把危险品删去。
3.其次就是道具类,tool.java增强武器的道具有一个消失标识,采用Vector动态数组存储阳光对象,绘制时候绘制该动态数组的所有道具对象,如果该道具的消失标识为真就把该道具从容器里面进行移除,阳光的消亡标识有两种情况下变成真,一是主人公驾驶的飞机触碰,二是到了一定时间消失标识为真。对于前者,如何判断主人公的飞机模型是否触碰道具,我们可以对二者位置参数x,y进行equal判断。参数皆相等时就让消失标识为真。这里我们注意到由于道具是静态的,为了区分道具与静态的陷阱,绘制的时候道具要不断旋转,声明一个角度变量angle不断自加然后以道具的中心点为旋转中心旋转道具即可(道具不是一个点!)。至于后者,我们给道具类添加一个计数器变量count,然后不断的自加,当到达道具的消失时间就让消失标识为真.
4.接着我们设计一个战场类university.java,战场类的作用是用来规定游戏空间大小,总共有XX个点构成,草坪的属性相对较于简单,就有一个是否容纳了子弹、陷阱、模型、道具的布尔型标识,当模型触碰子弹,相应HP减少。反之,触碰道具,攻击力上升。所以声明一个的二维空间数组,战场的位置用对应参数横坐标x与纵坐标y表示。
5.设计好了场地,我们再来设计一个敌机类boss.java,boss有一个整形变量type代表boss的类型,0代表普通喽喽,1代表大boss,其次boss有一个整形变量HP代表boss的血量,然后有一个isexist布尔型标识表示boss是否被摧毁,小喽喽碰到子弹则立即标识为真,大boss则HP减少,降至0时满足标识为真。依旧使用一个boss容器来进行存储boss,如果boss血量为0就从该容器移除boss,创建boss的时候可以使用一个固定二维数组,如下边所示 int LEVELS[][]={{0},{0,0},{0,0,1},{0,1,1},{0,1,1},{1,0,1,1,0,1},这是一个二维数组,第一维长度为10代表10波敌机轰炸第二维表示要创建的boss,0表示普通boss,1表示大boss。当到达一定的时间就循环该波数的数组长度创建boss,然后波数值增加。
6.然后设计子弹类Zidan.java,子弹依旧有一个整型变量type表示子弹的类型,0表示敌机的子弹,1表示主人公的子弹,跟boss一样采用Vector存储子弹对象,依旧有一个是否消失的标识,当子弹碰撞到模型后或者子弹的x坐标大于屏幕右边就让消失标识为真从容器里面移除子弹,标识为0的子弹的移动就是x坐标增加一个速度方向不定,y的坐标不断减少。标识为1的子弹的移动就是x坐标增加一个速度方向不定,y的坐标不断增加。
7.设计主人公的飞机类feiji.java,飞机也有一个类型type,如果为0代表普通,1代表升级后的,也使用一个Vector存储飞机对象,飞机也有一个HP表示飞机的血量,不同类型的子弹有不同的攻击力。

原文地址:https://www.cnblogs.com/dky201452/p/5517144.html