2 打飞机逻辑
好了,能自己实现上面这段就说明:你已经会打飞机啦!
下面教你怎么打更comfortable
继续刚才的,既然我们可以把飞机的逻辑业务都抽取出来,那么这个Frame类我们就不去打扰了,我们独立出一个Controller的类,该类负责游戏业务控制,比如我方飞机的对象持有,敌方一群飞机对象持有(用什么数据结构?当然就用链表呗。。)该逻辑也就是控制分数,还有游戏开始,暂停以及重新开始一些外围以及游戏运行的整体逻辑。
我把Controller的onDraw()函数贴出来,大家就清楚这个游戏逻辑
定期安排敌人飞机出现
定期安排药丸出现
刷新我们飞机位置 状态
刷新敌人飞机位置 状态
刷新爆炸动画
刷新药丸个数显示
刷新分数
public void onDraw(Graphics g) {
///////游戏逻辑/////////////
//schedular produce plane-other
//定期安排出飞机,出飞机的类型有飞机工厂来生成
if((++readyOther)%10==0){
readyOther = 0;
Random rand = new Random();
OtherPlaneFactory.getPlanes(rand.nextInt(2), others, this);
}
//schedular produce equipment
//定期安排药丸出现 其实这里也可以弄一个药丸工厂
if((++readyPowerful)%600==0){
Random rand = new Random();
if(rand.nextBoolean())
equipments.add(new PowerEquipment(rand.nextInt(MainFrame.FRAME_WIDIH), 0, this));
else
equipments.add(new BombEquipment(rand.nextInt(MainFrame.FRAME_WIDIH), 0, this));
}
/////下面就是把逻辑分配给这些游戏角色了
Color oldColor = g.getColor();
myPlane.onDraw(g); //我方飞机逻辑控制
for(int i=0;i
3 打飞机的角色
主要的还是角色的设置才是学习java的途径
如何把java的一些设计原则使用的好就在这里。
接口的封装和字符类的继承,我觉得最好能用接口就使用接口,还有功能不能定的太死,最好能用插拔接口的形式。
例如某个物体是需要能运动的。我们不需要对所有角色都继承一个有onMove()的父类,而是可以用实现了Moveable这个接口。这种灵活性比使用类好的多。当然我实现上也有许多缺陷,仅供参考:下载地址
http://download.csdn.net/detail/ylf13/6870955
还在弄git。。不太会用,传上去后再给出地址下载哈