概述
将游戏窗口显示出来之后,下一步要做的是考虑整个游戏的结构。
游戏角色有:(暂时没有写到可以吃的技能,也可能写不到……)
- 我方飞机
- 敌方普通飞机
- 敌方BOSS
- 还有子弹
总的来说是GameClient对这些游戏角色进行控制,所以这里用到一个叫做观察者模式的东西。
GameClient就是这个观察者,而所有游戏角色都是被观察者。
比如:当敌方飞机死亡,GameClient就给我方飞机加分。
如图:
加分的方法并不是敌方飞机需要关心的,因此,要写一个接口给GameClient。
直接上代码:
import java.util.List;
import com.mybeatplane.role.BossPcPlane;
import com.mybeatplane.role.Bullet;
import com.mybeatplane.role.NormalPcPlane;
public interface GameObserver {
// boss飞机的出现和死亡
public void onBossAppear(BossPcPlane bossPcPlane);
public void onBossDie(BossPcPlane bossPcPlane);
// 普通敌方飞机的出现和死亡
public void onNormalPcPlaneAppear(NormalPcPlane normalPcPlane);
public void onNormalPcPlaneDie(NormalPcPlane normalPcPlane);
// 子弹的出现和死亡
public void onBulletAppear(Bullet newBullet);
public void onBulletsAppear(List<Bullet> newBullets);
public void onBulletDisapper(Bullet bullet);
// 我方飞机的死亡
public void onMainPlaneDie();
}
具体的实现,就放在后面再写。
现在看的是游戏角色。
游戏角色都有出现,死亡,碰撞检测等相同的操作,这里也写一个接口给游戏角色,不过因为懒得写了,抽象程度并不高。
import java.awt.Rectangle;
// 每一个游戏角色都有的动作:
// 1,获取范围,以进行碰撞检测
// 2,死亡
// 3,移动
// 4,减血
// 5,碰撞
// 6,获取攻击力
public interface GameRole {
public Rectangle getRect();
public void godie();
public void move();
public void discreaseBlood(int discreaseValue);
public void hit(GameRole gameRole);
public int getAttackValue();
}
今天就到这吧。
最后
以上就是会撒娇山水为你收集整理的java写飞机大战二的全部内容,希望文章能够帮你解决java写飞机大战二所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复