コード例 #1
0
 /**
  * determines whether a projectile hits an enemy
  *
  * @param enemy - enemy projectile hits
  * @return - true if enemy gets hit, false otherwise
  */
 public boolean hitEnemy(Enemy enemy) {
   if (myX >= enemy.getX() - 25 && myX <= enemy.getX() + 25) {
     if (myY <= enemy.getY() + 25 && myY >= enemy.getY() - 25) {
       return true;
     }
   }
   return false;
 }
コード例 #2
0
 public float getRowY() {
   if (!this.isEmpty()) {
     Enemy e = enemyList.getFirst();
     return e.getY();
   }
   return -100;
 }
コード例 #3
0
 public void scrollEnemies() {
   for (Enemy i : enemyList) {
     i.setY(i.getY() + (int) (player1.getVelocity() * 0.3));
     i.setYPos(i.getYPos() + (int) (player1.getVelocity() * 0.3));
     i.setYMax(i.getYMax() + (int) (player1.getVelocity() * 0.3));
   }
 }
コード例 #4
0
 public void checkEnemyCollision() {
   for (Enemy e : enemyList) {
     if (e.getOnScreen()) { // can be removed later on
       // goes through all the enemies and checks if they collide
       if (e.checkCollision(e.getPics().get(e.getCounter()), player1)) {
         if (player1.getInvi() == false) {
           // If the player is not invisble then you get spiked.
           if (player1.getVelocity() > 0) { // if the player hits it from the bottom
             player1.setSpikeVelo();
             loseCoins();
           } else {
             player1.setVelo(
                 50); // if the player is on top instead the player bounces off the enemy
             if (musicOn) {
               bounce.play();
             }
           }
         }
         eRemove.add(e); // once we hit, we remove the enemy
       }
     } else {
       eRemove.add(e); // if the enemy goes of the screen, we remove
     }
   }
   for (Enemy e : eRemove) {
     poofList.add(new Poof(e.getX(), e.getY(), 1)); // removes all the enemies
     enemyList.remove(e);
   }
   eRemove = new ArrayList<Enemy>();
 }
コード例 #5
0
 public void drawEnemy(Graphics g) {
   Graphics2D g2d = (Graphics2D) g;
   for (Enemy i : enemyList) {
     if (i.getFlip()) {
       g2d.drawImage(
           i.getPics().get(i.getCounter()),
           i.getX() + i.getWidth(),
           i.getY(),
           -i.getWidth(),
           i.getHeight(),
           null); // flips the image if the flip is true
     } else {
       g.drawImage(
           i.getPics().get(i.getCounter()), i.getX(), i.getY(), i.getWidth(), i.getHeight(), null);
     }
     i.count();
     i.setDirection();
     i.move();
   }
 }
コード例 #6
0
  public void checkPupCollision() {
    // pretty much the same thing as before, however it alsoe does the powerup effects
    for (Powerup p : pupList) {
      if (p.getOnScreen()) { // can be removed later on
        if (p.checkCollision(player1)) {
          pupRemove.add(p);
          player1.setPower(p.getType());
          player1.setVelo(50);
        }
      } else {
        pupRemove.add(p);
      }
    }
    if (player1.getPower().equals("Lucky")) { // changes everything to stars
      for (Coin c : coinList) {
        starList.add(new Star(c.getX(), c.getY(), 2));
        cRemove.add(c);
      }
      for (Box b : boxList) {
        starList.add(new Star(b.getX(), b.getY(), 2));
        bRemove.add(b);
      }
      for (Enemy e : enemyList) {
        starList.add(new Star(e.getX(), e.getY(), 2));
        eRemove.add(e);
      }
    } else if (player1.getPower().equals("Magnet")) { // moves the coins towards the player
      for (Coin c : coinList) {
        c.moveTowards(player1);
      }
    } else { // else do nothing

    }
    for (Powerup p : pupRemove) {
      poofList.add(new Poof(p.getX(), p.getY(), 2));
      pupList.remove(p);
    }
    pupRemove = new ArrayList<Powerup>();
  }
コード例 #7
0
ファイル: Dynamite.java プロジェクト: Jyks/Lavaescape
  public void fuseTick(int height) {
    if (exists()) {
      if (fuse > 0) fuse--;
      else {
        Game.shake = 15;

        for (WallCube wc : WallCube.getInstances()) {
          if (wc.getY() != 0 && wc.getY() != height - 1) {
            if (wc.getX() + 1 == x && wc.getY() == y) wc.destroy();
            if (wc.getX() - 1 == x && wc.getY() == y) wc.destroy();
            if (wc.getX() == x && wc.getY() + 1 == y) wc.destroy();
            if (wc.getX() == x && wc.getY() - 1 == y) wc.destroy();
            if (wc.getX() + 1 == x && wc.getY() + 1 == y) wc.destroy();
            if (wc.getX() - 1 == x && wc.getY() - 1 == y) wc.destroy();
            if (wc.getX() - 1 == x && wc.getY() + 1 == y) wc.destroy();
            if (wc.getX() + 1 == x && wc.getY() - 1 == y) wc.destroy();
          }
        }

        for (Enemy e : Enemy.getInstances()) {
          if (e.getY() != 0 && e.getY() != height - 1) {
            if (e.getX() + 1 == x && e.getY() == y) e.destroy();
            if (e.getX() - 1 == x && e.getY() == y) e.destroy();
            if (e.getX() == x && e.getY() + 1 == y) e.destroy();
            if (e.getX() == x && e.getY() - 1 == y) e.destroy();
            if (e.getX() + 1 == x && e.getY() + 1 == y) e.destroy();
            if (e.getX() - 1 == x && e.getY() - 1 == y) e.destroy();
            if (e.getX() - 1 == x && e.getY() + 1 == y) e.destroy();
            if (e.getX() + 1 == x && e.getY() - 1 == y) e.destroy();
          }
        }

        if (Game.player.getX() + Game.camOffX + 1 == x && Game.player.getY() == y) {
          Game.player.hp -= 5;
          Gui.lastdmg = 5;
          Gui.lastdmgtime = 20;
          Gui.lastdmgx = (Game.player.getX() * 32) + 16;
          Gui.lastdmgy = (Game.player.getY() * 32) + 8;
        }
        if (Game.player.getX() + Game.camOffX - 1 == x && Game.player.getY() == y) {
          Game.player.hp -= 5;
          Gui.lastdmg = 5;
          Gui.lastdmgtime = 20;
          Gui.lastdmgx = (Game.player.getX() * 32) - 16;
          Gui.lastdmgy = (Game.player.getY() * 32) + 8;
        }
        if (Game.player.getX() + Game.camOffX == x && Game.player.getY() + 1 == y) {
          Game.player.hp -= 5;
          Gui.lastdmg = 5;
          Gui.lastdmgtime = 20;
          Gui.lastdmgx = (Game.player.getX() * 32) + 8;
          Gui.lastdmgy = (Game.player.getY() * 32) + 16;
        }
        if (Game.player.getX() + Game.camOffX == x && Game.player.getY() - 1 == y) {
          Game.player.hp -= 5;
          Gui.lastdmg = 5;
          Gui.lastdmgtime = 20;
          Gui.lastdmgx = (Game.player.getX() * 32) + 8;
          Gui.lastdmgy = (Game.player.getY() * 32) - 16;
        }
        existance = false;
        destroy();
      }
    }
  }
コード例 #8
0
  public void paint(Graphics g) {
    super.paint(g);

    if (ingame) {

      Graphics2D g2d = (Graphics2D) g;

      if (link.isVisible()) {
        g2d.drawImage(link.getImage(), link.getX(), link.getY(), this);
      } // end inner if

      ArrayList as = link.getArrows();

      for (int i = 0; i < as.size(); i++) {
        Arrow a = (Arrow) as.get(i);
        g.setColor(new Color(96, 64, 32));
        g.fillRect(a.getX(), a.getY(), a.width, a.height);

        g.setColor(Color.GRAY);
        int[] xPoints = {a.getX() + a.width, a.getX() + a.width + 10, a.getX() + a.width};
        int[] yPoints = {a.getY() + a.height + 2, a.getY() + (a.height / 2), a.getY() - 2};
        g.fillPolygon(xPoints, yPoints, 3);
      } // end for

      for (int i = 0; i < enemies.size(); i++) {
        Enemy en = (Enemy) enemies.get(i);
        if (en.isVisible()) {
          g2d.drawImage(en.getImage(), en.getX(), en.getY(), this);
        } // end inner if
      } // end for

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

      if (waveNum < 13) {
        g2d.setColor(Color.WHITE);
        g2d.drawString("Wave: " + waveNum, 5, 30);
      } else {
        g2d.setColor(Color.WHITE);
        g2d.drawString("Final Wave!", 5, 30);
      }

    } else if (gamewin) {
      String msg = "You Win!";
      Font small = new Font("Helvetica", Font.BOLD, 14);
      FontMetrics metr = this.getFontMetrics(small);

      g.setColor(Color.white);
      g.setFont(small);
      g.drawString(msg, (600 - metr.stringWidth(msg)) / 2, 600 / 2);
    } 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, (600 - metr.stringWidth(msg)) / 2, 600 / 2);
    } // end outter if

    Toolkit.getDefaultToolkit().sync();
    g.dispose();
  } // end paint
コード例 #9
-1
  private void doShooting() {
    PositionFinder p = new PositionFinder(enemies, this);
    en = p.findNearest();
    if (en == null) return;

    Point2D myPos = new Point2D.Double(getX(), getY());

    if (HoT) {
      /* Perform head on target for gun movement */
      aimingPoint = new Point2D.Double(en.getX(), en.getY());
      double turnGunAmt = (getHeadingRadians() + en.getBearingRadians() - getGunHeadingRadians());
      turnGunAmt = Utils.normalRelativeAngle(turnGunAmt);
      setTurnGunRightRadians(turnGunAmt);
    } else {
      /* Perform circular targeting */
      Rectangle2D battlefield =
          new Rectangle2D.Double(0, 0, getBattleFieldWidth(), getBattleFieldHeight());
      long when = calcTimeToReachEnemy();
      aimingPoint = org.pattern.utils.Utils.getFuturePoint(en, when);
      if (!battlefield.contains(aimingPoint)) {
        HoT = true;
        return;
      }
      double theta =
          Utils.normalAbsoluteAngle(
              Math.atan2(aimingPoint.getX() - getX(), aimingPoint.getY() - getY()));
      setTurnGunRightRadians(Utils.normalRelativeAngle(theta - getGunHeadingRadians()));
    }

    if (getGunHeat() == 0) {
      double firePower = 3.0;
      fire(firePower);
    }
  }