Exemple #1
0
  public void checkCollisions() {

    Rectangle r3 = craft.getBounds();

    for (int j = 0; j < aliens.size(); j++) {
      Alien a = (Alien) aliens.get(j);
      Rectangle r2 = a.getBounds();

      if (r3.intersects(r2)) {
        craft.setVisible(false);
        a.setVisible(false);
        ingame = false;
      }
    }

    ArrayList ms = craft.getMissiles();

    for (int i = 0; i < ms.size(); i++) {
      Missile m = (Missile) ms.get(i);

      Rectangle r1 = m.getBounds();

      for (int j = 0; j < aliens.size(); j++) {
        Alien a = (Alien) aliens.get(j);
        Rectangle r2 = a.getBounds();

        if (r1.intersects(r2)) {
          m.setVisible(false);
          a.setVisible(false);
        }
      }
    }
  }
  public void drawFromThread(Canvas canvas) {
    final float scaleFactorX = getWidth() / (WIDTH * 1.f);
    final float scaleFactorY = getHeight() / (HEIGHT * 1.f);

    if (canvas != null) {
      final int savedState = canvas.save();
      canvas.scale(scaleFactorX, scaleFactorY);
      bg.draw(canvas);
      if (!dissapear) {
        player.draw(canvas);
      }
      // draw smokepuffs
      for (Smokepuff sp : smoke) {
        sp.draw(canvas);
      }
      // draw missiles
      for (Missile m : missiles) {
        m.draw(canvas);
      }
      // draw topborder
      for (TopBorder tb : topborder) {
        tb.draw(canvas);
      }
      // draw botborder
      for (BotBorder bb : botborder) {
        bb.draw(canvas);
      }
      // draw explosion
      if (started) {
        explosion.draw(canvas);
      }
      drawText(canvas);
      canvas.restoreToCount(savedState);
    }
  }
Exemple #3
0
  private void doDrawing(Graphics g) {

    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(craft.getImage(), craft.getX(), craft.getY(), this);
    ArrayList<Missile> ms = craft.getMissiles();
    for (Missile missible : ms) {
      g2d.drawImage(missible.getImage(), missible.getX(), missible.getY(), this);
    }
  }
Exemple #4
0
  public void paint(Graphics g) {
    super.paint(g);
    if (Game.gameState == GameState.LOADING) {
      if (highlightedString == 0) {
        g.setColor(Color.RED);
        g.drawString("Start Game", 100, 80);
        g.setColor(Color.GREEN);
        g.drawString("Continue Game", 100, 100);
        g.drawString("Options", 100, 120);
      } else if (highlightedString == 1) {
        g.setColor(Color.GREEN);
        g.drawString("Start Game", 100, 80);
        g.setColor(Color.RED);
        g.drawString("Continue Game", 100, 100);
        g.setColor(Color.GREEN);
        g.drawString("Options", 100, 120);
      } else if (highlightedString == 2) {
        g.setColor(Color.GREEN);
        g.drawString("Start Game", 100, 80);
        g.setColor(Color.GREEN);
        g.drawString("Continue Game", 100, 100);
        g.setColor(Color.RED);
        g.drawString("Options", 100, 120);
      }
    }
    if (Game.gameState == GameState.PLAYING) {
      Graphics2D g2d = (Graphics2D) g;
      g2d.drawImage(player.getImage(), player.getX(), player.getY(), this);
      ArrayList ms = player.getMissiles();

      g.drawString("Bug Count: " + Bug.bugArrayList.size(), 270, 30);
      g.drawString("Player Score: " + Mech.mechHashMap.get(0).getScore(), 270, 60);
      g.drawString("Player Lives: " + Mech.mechHashMap.get(0).getLives(), 270, 90);
      g.drawString("Weapon Selected: " + Mech.mechHashMap.get(0).weaponSelected, 270, 120);

      for (int i = 0; i < ms.size(); i++) {
        Missile m = (Missile) ms.get(i);
        g2d.drawImage(m.getImage(), m.getX(), m.getY(), this);
      }
      for (Bug bug : Bug.bugArrayList) {
        g2d.drawImage(bug.image, bug.x, bug.y, this);
        System.out.println("draw bug");
        System.out.println("Bug Count;" + Bug.bugArrayList.size());
        bug.move();
      }
    } else if (Game.gameState == GameState.GAMEOVER) {
      g.drawString("GAME OVER!", 100, 100);
    }
    Toolkit.getDefaultToolkit().sync();
    g.dispose();
  }
Exemple #5
0
  public void shoot() {
    int cooldown = 1 + (int) (Math.random() * 100);
    if (cooldown <= 2) {

      Missile f = new Missile(this.x, this.y, color);
      f.setTarget(user.getX(), GamePanel.PHEIGHT);
      int size = (int) (Math.random() * 10) + 2; // min = 5 max = 105
      f.setExplosionMaxSize(size);

      synchronized (GameData.figures) {
        GameData.figures.add(f);
      }
    }
  }
  // attempts to move toward a location
  // depending on the playstyle and unit type, it will avoid towers or other unit types
  public Boolean moveTo(Direction direction) throws GameActionException {

    if (!this.robot.robotController.canMove(direction)) return false;

    RobotType type = this.robot.type;
    Boolean moveAroundHQ =
        !this.robot.canAttackInHQRange(this.robot.unitController.enemyTowers().length);

    Boolean moveAroundTowers = !this.robot.canAttackInTowerRange();
    if (type == Missile.type()) moveAroundTowers = false;
    if (type == Launcher.type()) moveAroundTowers = true;

    Boolean moveAroundMilitary = false;
    if (UnitController.isUnitTypeMiner(type) && !this.robot.currentPlaystyle().shouldGoAllOut())
      moveAroundMilitary = true;
    else if (type == Drone.type()) moveAroundMilitary = true;
    else if (type == Launcher.type()) moveAroundMilitary = true;

    if (this.canMoveSafely(direction, moveAroundHQ, moveAroundTowers, moveAroundMilitary)) {

      this.robot.robotController.move(direction);
      return true;
    }
    return false;
  }
Exemple #7
0
  public void actionPerformed(ActionEvent e) {
    if (Game.running) {
      if (player != null) {
        ArrayList ms = player.getMissiles();

        for (int i = 0; i < ms.size(); i++) {
          Missile m = (Missile) ms.get(i);
          if (m.isVisible()) m.move();
          else ms.remove(i);
        }
        player.move();
        repaint();
      }
    } else {
      tick.stop();
    }
  }
Exemple #8
0
  private void updateMissible() {

    ArrayList ms = craft.getMissiles();

    for (int i = 0; i < ms.size(); i++) {

      Missile m = (Missile) ms.get(i);

      if (m.isVisible()) {

        m.move();
      } else {

        ms.remove(i);
      }
    }
  }
Exemple #9
0
  public void paint(Graphics g) {

    myTank.draw(g);
    enenmyTank.draw(g);

    for (int i = 0; i < arrMissile.size(); i++) {
      Missile m = arrMissile.get(i);
      if (m.hitTank(enenmyTank)) {
        enenmyTank.live = false;
        m.live = false;
        arrMissile.remove(m);
      }

      m.draw(g);
    }

    g.drawString("arrMissile count:" + arrMissile.size(), 10, 50);
  }
Exemple #10
0
 public static void upgradeShip() {
   playerImage = getImage(imagePath + separator + "images" + separator + "playerShip3.gif");
   Missile.upgradeMissile();
   Main.missileLevel = 2;
   xOffset = 70;
   yOffset = 19;
   upgrade = true;
   GameData.playerImage = Ship.playerImage;
 }
Exemple #11
0
  /** updates junk */
  public void update() {
    GameParameters gp = gameModel.getGParam();
    float gravity = G * gp.getGravity() * ONE_METER;
    int heights[] = gameModel.getHeights();
    int cave[] = gameModel.getCave();
    int dirtChunk1Top[] = gameModel.getDirtChunk1Top();
    int dirtChunk2Top[] = gameModel.getDirtChunk2Top();
    int dirtChunk1Bottom[] = gameModel.getDirtChunk1Top();
    int dirtChunk2Bottom[] = gameModel.getDirtChunk2Top();
    vy = vy + (gravity * DT);
    vx = vx + (gameModel.getWindSpeed() / 20);
    if (vy > 0.0f) {
      updateMove();
      if (exploded) {
        exploded = false;
        ScorchedAmp.playSound(MISS_SOUND);
        gameModel.removeShot(this);
      }
    } else {
      ScorchedAmp.playSound(MIRV_PEAK);
      Missile s0 = new Missile((int) vx * 2, 0, getX(), getY(), gameModel);
      Missile s1 = new Missile((int) vx, 0, getX(), getY(), gameModel);
      Missile s2 = new Missile(0, 0, getX(), getY(), gameModel);
      Missile s3 = new Missile((int) (vx * -1), 0, getX(), getY(), gameModel);
      Missile s4 = new Missile((int) (vx * -2), 0, getX(), getY(), gameModel);
      s0.setShooter(shooter);
      s1.setShooter(shooter);
      s2.setShooter(shooter);
      s3.setShooter(shooter);
      s4.setShooter(shooter);

      gameModel.newShot(s0);
      gameModel.newShot(s1);
      gameModel.newShot(s2);
      gameModel.newShot(s3);
      gameModel.newShot(s4);

      gameModel.removeShot(this);
    }
  }
Exemple #12
0
  public void paint(Graphics g) {
    super.paint(g);

    if (ingame) {

      Graphics2D g2d = (Graphics2D) g;

      if (craft.isVisible()) g2d.drawImage(craft.getImage(), craft.getX(), craft.getY(), this);

      ArrayList ms = craft.getMissiles();

      for (int i = 0; i < ms.size(); i++) {
        Missile m = (Missile) ms.get(i);
        g2d.drawImage(m.getImage(), m.getX(), m.getY(), this);
      }

      for (int i = 0; i < aliens.size(); i++) {
        Alien a = (Alien) aliens.get(i);
        if (a.isVisible()) g2d.drawImage(a.getImage(), a.getX(), a.getY(), this);
      }

      g2d.setColor(Color.WHITE);
      g2d.drawString("Aliens left: " + aliens.size(), 5, 15);

    } else {
      String msg = "Game Over";
      Font small = new Font("Helvetica", Font.BOLD, 14);
      FontMetrics metr = this.getFontMetrics(small);

      g.setColor(Color.white);
      g.setFont(small);
      g.drawString(msg, (B_WIDTH - metr.stringWidth(msg)) / 2, B_HEIGHT / 2);
    }

    Toolkit.getDefaultToolkit().sync();
    g.dispose();
  }
Exemple #13
0
  public void actionPerformed(ActionEvent e) {

    if (aliens.size() == 0) {
      ingame = false;
    }

    ArrayList ms = craft.getMissiles();

    for (int i = 0; i < ms.size(); i++) {
      Missile m = (Missile) ms.get(i);
      if (m.isVisible()) m.move();
      else ms.remove(i);
    }

    for (int i = 0; i < aliens.size(); i++) {
      Alien a = (Alien) aliens.get(i);
      if (a.isVisible()) a.move();
      else aliens.remove(i);
    }

    craft.move();
    checkCollisions();
    repaint();
  }