用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

飞机大战

2019-10-12 作者:云代码会员举报

[java]代码库

public class World extends JPanel {
	public static final int WIDTH = 400;//public static final int WIDTH=400;
	public static final int HEIGHT = 700;//public static final int HEIGHT=700;
	private Sky sky = new Sky();//private Sky sky=new Sky();
	private Hero hero = new Hero();//private Hero hero=new Hero();
	private FlyingObject[] enemies = {}; // 敌人数组 private FlyingObject []enemies={};
	private Bullet[] bullets = {}; // 子弹数组 private Bullet[]bullets={};

	public static final int START = 0;//public static final int START=0;
	public static final int RUNNING = 1;//public static final int RUNNING=1;
	public static final int PAUSE = 2;//public static final int PAUSE=2;
	public static final int GAME_OVER = 3;//public static final int GAME_OVER=3;
	private int state = START;//private int state=START;

	public static BufferedImage start;//public static BufferedImage start;
	public static BufferedImage pause;//public static BufferedImage pause;
	public static BufferedImage gameover;//public static BufferedImage gameover;
	static {//static{静态块
		start = Images.loadImage("start.png");//start=Images.loadImage("start.png);
		pause = Images.loadImage("pause.png");//pause=Images.loadImage("pause.png");
		gameover = Images.loadImage("gameover.png");//gameover=Images.loadImage("gameover.png");
	}

	public FlyingObject nextOne() {//public FlyingObject nextOne(){
		Random rand = new Random();//Random rand=new Random();
		int type = rand.nextInt(20);//int type=rand .nextInt(20);
		if (type < 5) {//if(type<5){
			return new Bee();//return new Bee();
		} else if (type < 20) {//else if (type<20){
			return new Airplane();//return new Airplane();
		} else {//else
			return new BigAirplane();//return new BigAirplane();
		}
	}

	int flyEnterIndex = 0;//int flyEnterIndex=0;

	public void enterAction() {//public void enterAction(){
		flyEnterIndex++;//flyEnterIndex++;
		if (flyEnterIndex % 40 == 0) {//if(flyEnterIndex%40==0){
			FlyingObject obj = nextOne();//FlyingObject obj=nextOne;
			enemies = Arrays.copyOf(enemies, enemies.length + 1);//enemies =Arrays.copyOf(enemies,enemies.length+1);
			enemies[enemies.length - 1] = obj;//enemies [enemies.length-1]=obj;
		}
	}

	public void stepAction() {//public void stepAction(){
		sky.step();//sky.step();
		for (int i = 0; i < enemies.length; i++) {//for(int i=0;i<enemies.length;i++)
			enemies[i].step();//enemies[i].step();
		}
		for (int i = 0; i < bullets.length; i++) {//for(int i=0;i<bullets.length;i++)
			bullets[i].step();//bullets[i].step();
		}
	}

	int shootIndex = 0;//int shootIndex=0;

	public void shootAction() {//public void shootAction(){
		shootIndex++;//shootIndex++;
		if (shootIndex % 30 == 0) {//if(shootIndex%30==0){
			Bullet[] bs = hero.shoot();//Bullets[]bs=hero.shoot();
			bullets = Arrays.copyOf(bullets, bullets.length + bs.length);
			System.arraycopy(bs, 0, bullets, bullets.length - bs.length, bs.length);
		}//bullets=Arrays.copyOf(bullets,bullets.length+bs.length);
	}//System.arraycopy(bs,0,bullets,bullets.length-bs.length,bs.length);

	private int score = 0;//private int score=0;

	public void bangAction() {//public void bangAction()
		for (int i = 0; i < bullets.length; i++) {//for(int i=0;i<bullets.length;i++){
			Bullet b = bullets[i];//Bullets b=bullets[i]
			for (int j = 0; j < enemies.length; j++) {//for(int j=0;j<enemies.length;j++){
				FlyingObject f = enemies[j];//FlyingObject f=enemies[j];
				if (b.isLife() && f.isLife() && b.hit(f)) {//if(b.islife()&&f.isLife()&&b.hit(f)){
					b.goDead();//b.goDead();
					f.goDead();//f.goDead();
					if (f instanceof Enemy) {//if(f instanceof Enemy){
						Enemy e = (Enemy) f;//Enemy e=(Enemy) f;
						score += e.getScore();//score+=e.getScore();
					}
					if (f instanceof Award) {//if(f instanceof Award){
						Award a = (Award) f;//Award a=(Award)f;
						int type = a.getType();//int type=a.getType();
						switch (type) {//switch(type){
						case Award.DOUBLE_FIRE://case Award.DOUBLE_FIRE:
							hero.addDoubleFire();//hero.addDoubleFire();
							break;//break;
						case Award.LIFE://case Award.LIFE:
							hero.addLife();//hero.addLife
							break;//break;
						}
					}

				}
			}
		}
	}



分享到:
更多

网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。