⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamecanvas.java

📁 飞行类射击小游戏
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
      }

      enemyTime1 = System.currentTimeMillis();
    }
  }
  private void enemyInit2() {
      long nowTime = System.currentTimeMillis();
      if (nowTime - enemyTime2 > 4000) {
        for (int i = 0; i < enemy2.length; i++) {
          if (enemy2[i][0] == 0) {
            enemy2[i][1] = width+10;
            enemy2[i][2] = (random.nextInt() >>> 1) % 60;
            enemy2[i][3] = (random.nextInt() >>> 1) % 2;
            enemy2[i][0] = 1;
            break;
          }
        }

        enemyTime2 = System.currentTimeMillis();
      }
    }


  //画敌方飞机
  private void enemy() {
    enemyInit();
    for (int i = 0; i < enemy.length; i++) {
      if (enemy[i][0] != 0) {
          g.drawImage(enemyImage[0], enemy[i][1], enemy[i][2], 0);
      }
    }
    enemyMove(3, 5);
  }
  private void enemy1() {
    enemyInit1();
    for (int i = 0; i < enemy1.length; i++) {
      if (enemy1[i][0] != 0) {
          g.drawImage(enemyImage[1], enemy1[i][1], enemy1[i][2], 0);
      }
    }
    enemyMove1(3, 5);
  }
  private void enemy2() {
      enemyInit2();
      for (int i = 0; i < enemy2.length; i++) {
        if (enemy2[i][0] != 0) {
              g.drawImage(enemyImage[2], enemy2[i][1], enemy2[i][2], 0);
        }
      }
      enemyMove2(3, 5);
    }


  //敌方飞机移动
  private void enemyMove(int speedX, int speedY) {
    for (int i = 0; i < enemy.length; i++) {
      switch (enemy[i][3]) {
        case 0:
          enemy[i][1] -= speedX;
          enemy[i][2] += speedY;
          break;
        case 1:
          enemy[i][2] += speedY;
          break;
        case 2:
          enemy[i][1] += speedX;
          enemy[i][2] += speedY;
          break;
      }
      if (enemy[i][2] > height || enemy[i][1] < 0 || enemy[i][1] > width) {
        enemy[i][0] = 0;
      }
    }
  }
  private void enemyMove1(int speedX, int speedY){
    for (int i = 0; i < enemy1.length; i++) {
      switch (enemy1[i][3]) {
        case 0:
          enemy1[i][1] += speedX;
          enemy1[i][2] += speedY;
          break;
        case 1:
          enemy1[i][2] += speedY;
          break;
      }
      if (enemy1[i][2] > height || enemy1[i][1] > width) {
        enemy1[i][0] = 0;
      }
    }
  }
  private void enemyMove2(int speedX, int speedY){
    for (int i = 0; i < enemy2.length; i++) {
      switch (enemy2[i][3]) {
        case 0:
          enemy2[i][1] -= speedX;
          enemy2[i][2] += speedY;
          break;
        case 1:
          enemy2[i][2] += speedY;
          break;
      }
      if (enemy2[i][2] > height || enemy2[i][1] < 0) {
        enemy2[i][0] = 0;
      }
    }
  }
  //初始化敌方子弹
  private void enemyBulletInit() {
    long nowTime = System.currentTimeMillis();
    if (nowTime - eBulletTime > 1000) {
      for (int i = 0; i < enemy.length; i++) {
        if (enemy[i][0] != 0) {
          for (int j = 0; j < enemyBullet.length; j++) {
            if (enemyBullet[j][0] == 0) {
              enemyBullet[j][1] = enemy[i][1] + 3;
              enemyBullet[j][2] = enemy[i][2] + 5;
              enemyBullet[j][3] = (random.nextInt() >>> 1) % 4;
              enemyBullet[j][0] = 1;
              break;
            }
          }
        }
      }
      eBulletTime = System.currentTimeMillis();
    }
  }
  private void enemyBulletInit1() {
    long nowTime = System.currentTimeMillis();
    if (nowTime - eBulletTime1 > 1000) {
      for (int i = 0; i < enemy1.length; i++) {
        if (enemy1[i][0] != 0) {
          for (int j = 0; j < enemyBullet1.length; j++) {
            if (enemyBullet1[j][0] == 0) {
              enemyBullet1[j][1] = enemy1[i][1] + 3;
              enemyBullet1[j][2] = enemy1[i][2] + 5;
              enemyBullet1[j][3] = (random.nextInt() >>> 1) % 4;
              enemyBullet1[j][0] = 1;
              break;
            }
          }
        }
      }
      eBulletTime1 = System.currentTimeMillis();
    }
  }
  private void enemyBulletInit2() {
      long nowTime = System.currentTimeMillis();
      if (nowTime - eBulletTime2 > 1000) {
        for (int i = 0; i < enemy2.length; i++) {
          if (enemy2[i][0] != 0) {
            for (int j = 0; j < enemyBullet2.length; j++) {
              if (enemyBullet2[j][0] == 0) {
                enemyBullet2[j][1] = enemy2[i][1] + 3;
                enemyBullet2[j][2] = enemy2[i][2] + 5;
                enemyBullet2[j][3] = (random.nextInt() >>> 1) % 4;
                enemyBullet2[j][0] = 1;
                break;
              }
            }
          }
        }
        eBulletTime2 = System.currentTimeMillis();
      }
    }


  //画敌方子弹
  private void enemyBullet() {
    enemyBulletInit();
    for (int i = 0; i < enemyBullet.length; i++) {
      if (enemyBullet[i][0] != 0) {
        g.drawImage(enemyImage[3], enemyBullet[i][1], enemyBullet[i][2], 0);
      }
    }
    enemyBulletMove(3, 5);
  }
  private void enemyBullet1() {
   enemyBulletInit1();
   for (int i = 0; i < enemyBullet1.length; i++) {
     if (enemyBullet1[i][0] != 0) {
       g.drawImage(enemyImage[3], enemyBullet1[i][1], enemyBullet1[i][2], 0);
     }
   }
   enemyBulletMove1(3, 5);
 }
 private void enemyBullet2() {
    enemyBulletInit2();
    for (int i = 0; i < enemyBullet2.length; i++) {
      if (enemyBullet2[i][0] != 0) {
        g.drawImage(enemyImage[3], enemyBullet2[i][1], enemyBullet2[i][2], 0);
      }
    }
    enemyBulletMove2(3, 5);
  }


  //敌方子弹移动
  private void enemyBulletMove(int speedX, int speedY) {
    for (int i = 0; i < enemyBullet.length; i++) {
      switch (enemyBullet[i][3]) {
        case 0:
          enemyBullet[i][1] -= speedX;
          enemyBullet[i][2] += speedY;
          break;
        case 1:
          enemyBullet[i][2] += speedY;
          break;
        case 2:
          enemyBullet[i][1] += speedX;
          enemyBullet[i][2] += speedY;
          break;
        case 3:
          if (enemyBullet[i][2] < 100) {
            if (enemyBullet[i][1] < planeX)
              enemyBullet[i][1] += speedX;
            else
              enemyBullet[i][1] -= speedX;
          }
          enemyBullet[i][2] += speedY;
          break;
      }
      if (enemyBullet[i][2] > height || enemyBullet[i][1] < 0 ||
          enemyBullet[i][1] > width)
        enemyBullet[i][0] = 0;
    }
  }
  private void enemyBulletMove1(int speedX, int speedY) {
    for (int i = 0; i < enemyBullet1.length; i++) {
      switch (enemyBullet1[i][3]) {
        case 0:
          enemyBullet1[i][1] -= speedX;
          enemyBullet1[i][2] += speedY;
          break;
        case 1:
          enemyBullet1[i][2] += speedY;
          break;
        case 2:
          enemyBullet1[i][1] += speedX;
          enemyBullet1[i][2] += speedY;
          break;
        case 3:
          if (enemyBullet1[i][2] < 100) {
            if (enemyBullet1[i][1] < planeX)
              enemyBullet1[i][1] += speedX;
            else
              enemyBullet1[i][1] -= speedX;
          }
          enemyBullet1[i][2] += speedY;
          break;
      }
      if (enemyBullet1[i][2] > height || enemyBullet1[i][1] < 0 ||
          enemyBullet1[i][1] > width)
        enemyBullet1[i][0] = 0;
    }
  }

  private void enemyBulletMove2(int speedX, int speedY) {
    for (int i = 0; i < enemyBullet2.length; i++) {
      switch (enemyBullet2[i][3]) {
        case 0:
          enemyBullet2[i][1] -= speedX;
          enemyBullet2[i][2] += speedY;
          break;
        case 1:
          enemyBullet2[i][2] += speedY;
          break;
        case 2:
          enemyBullet2[i][1] += speedX;
          enemyBullet2[i][2] += speedY;
          break;
        case 3:
          if (enemyBullet2[i][2] < 100) {
            if (enemyBullet2[i][1] < planeX)
              enemyBullet2[i][1] += speedX;
            else
              enemyBullet2[i][1] -= speedX;
          }
          enemyBullet2[i][2] += speedY;
          break;
      }
      if (enemyBullet2[i][2] > height || enemyBullet2[i][1] < 0 ||
          enemyBullet2[i][1] > width)
        enemyBullet2[i][0] = 0;
    }
  }
  private void boss() {
    g.setColor(0xffff0000);
    g.fillRect(width-5,0,5,bossHp/10);
    g.drawImage(image[8], bossX, bossY, 0);
    g.setColor(0xffffffff);
    bossMove(3);
  }

  private void bossMove(int speed) {
    if (bossY < 15) {
      bossY += 3;
    }
    else {
      if (dir == 0) {
        bossX -= speed;
        if (bossX < 0)
          dir = 1;
      }
      if (dir == 1) {
        bossX += speed;
        if (bossX > width - image[8].getWidth())
          dir = 0;
      }
    }
  }

  private void bossBulletInit() {
    if (bossY > 12) {
      long nowTime = System.currentTimeMillis();
      if (nowTime - bossTime > bossBulletTime) {
        bossTime = System.currentTimeMillis();
        for (int i = 0; i < bossBullet.length; i++) {
          if (bossBullet[i][0] == 0) {
            bossBullet[i][1] = bossX + image[8].getWidth() / 2;

            bossBullet[i][2] = bossY + image[8].getHeight() -
                image[9].getHeight() / 2;
            bossBullet[i][0] = 1;
            break;

          }
        }
      }
    }
  }

  private void bossBulletInit1() {
    if (bossY > 12) {
      long nowTime = System.currentTimeMillis();
      if (nowTime - bossTime1 > bossBulletTime) {
        bossTime1 = System.currentTimeMillis();
        for (int i = 0; i < bossBullet1.length; i++) {
          if (bossBullet1[i][0] == 0) {
            bossBullet1[i][1] = bossX + image[8].getWidth() / 2 - 20;

            bossBullet1[i][2] = bossY + image[8].getHeight() -
                image[9].getHeight() / 2;
            bossBullet1[i][0] = 1;
            break;

          }
        }
      }
    }
  }

  private void bossBulletInit2() {
    if (bossY > 12) {
      long nowTime = System.currentTimeMillis();
      if (nowTime - bossTime2 > bossBulletTime) {
        bossTime2 = System.currentTimeMillis();
        for (int i = 0; i < bossBullet2.length; i++) {
          if (bossBullet2[i][0] == 0) {
            bossBullet2[i][1] = bossX + image[8].getWidth() / 2 - 10;

            bossBullet2[i][2] = bossY + image[8].getHeight() -
                image[9].getHeight() / 2;
            bossBullet2[i][0] = 1;
            break;

          }
        }
      }
    }
  }

  private void bossBulletInit3() {
    if (bossY > 12) {
      long nowTime = System.currentTimeMillis();
      if (nowTime - bossTime3 > bossBulletTime) {
        bossTime3 = System.currentTimeMillis();
        for (int i = 0; i < bossBullet3.length; i++) {
          if (bossBullet3[i][0] == 0) {
            bossBullet3[i][1] = bossX + image[8].getWidth() / 2 + 10;

            bossBullet3[i][2] = bossY + image[8].getHeight() -
                image[9].getHeight() / 2;
            bossBullet3[i][0] = 1;
            break;

          }
        }
      }
    }
  }

  private void bossBulletInit4() {
    if (bossY > 12) {
      long nowTime = System.currentTimeMillis();
      if (nowTime - bossTime4 > bossBulletTime) {
        bossTime4 = System.currentTimeMillis();
        for (int i = 0; i < bossBullet4.length; i++) {
          if (bossBullet4[i][0] == 0) {
            bossBullet4[i][1] = bossX + image[8].getWidth() / 2 + 20;

            bossBullet4[i][2] = bossY + image[8].getHeight() -

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -