Пример #1
0
  public void animate() {
    if (animateFirstTime) {
      animateFirstTime = false;
      if (xsize != getSize().width || ysize != getSize().height) {
        xsize = getSize().width;
        ysize = getSize().height;
      }
      readFile();
      outerSpaceImage = Toolkit.getDefaultToolkit().getImage("./Images/outerSpace.jpg");
      rocketImage = Toolkit.getDefaultToolkit().getImage("./Images/rocket.GIF");
      bgSound = new sound("Sound/starwars.wav");
      highscore = 0;
      reset();
    }
    if (GameOver) {
      rocketImage = Toolkit.getDefaultToolkit().getImage("./Images/rocket.GIF");
      return;
    } else if (speed > 0) {
      rocketRight = true;
      rocketImage = Toolkit.getDefaultToolkit().getImage("./Images/animrocket.GIF");
    } else if (speed < 0) {
      rocketRight = false;
      rocketImage = Toolkit.getDefaultToolkit().getImage("./Images/animRocket.GIF");
    } else rocketImage = Toolkit.getDefaultToolkit().getImage("./Images/rocket.GIF");

    if (ff) ffsize += .5;

    if (upspeed + rocketYPos > getHeight2()) {
      upspeed = 0;
      rocketYPos = getHeight2();
    } else if (upspeed + rocketYPos < 0) {
      upspeed = 0;
      rocketYPos = 0;
    } else rocketYPos += upspeed;

    for (int i = 0; i < starNum; i++) {
      star[i].setXPos(star[i].getXPos() + speed);

      if (star[i].getXPos() < 0) {
        star[i].setXPos(getWidth2());
        star[i].setYPos((int) (Math.random() * getHeight2()));
      } else if (star[i].getXPos() > getWidth2()) {
        star[i].setXPos(0);
        star[i].setYPos((int) (Math.random() * getHeight2()));
      }

      if (star[i].getLeftSide() < rocketXPos + Rocketwidth / 2
          && star[i].getRightSide() > rocketXPos - Rocketwidth / 2
          && star[i].getTop() > rocketYPos - Rocketheight / 2
          && star[i].getBottom() < rocketYPos + Rocketheight / 2) {
        if (firsttouch[i] == false) {
          zsound = new sound("Sound/ouch.wav");
          firsttouch[i] = true;
          lives--;
        }
      } else {
        firsttouch[i] = false;
      }

      if (ffsize == 2) {
        int a = rocketYPos - star[i].getYPos();
        int b = rocketXPos - star[i].getXPos();
        if (a < 0) a *= -1;
        if (b < 0) b *= -1;

        if (Math.sqrt((a * a) + (b * b)) <= ffwidth * 5 && ff) {
          if (!rocketRight) star[i].setXPos(getWidth2());
          else star[i].setXPos(0);
          star[i].setYPos((int) (Math.random() * getHeight2()));
          score++;
        }
      }
    }

    for (int i = 0; i < missle.length; i++) {
      if (missle[i].getActive()) {
        if (missle[i].getRight()) missle[i].setXPos(missle[i].getXPos() - 2);
        else missle[i].setXPos(missle[i].getXPos() + 2);

        for (int i2 = 0; i2 < starNum; i2++) {
          if (star[i2].getLeftSide() < missle[i].getRightSide()
              && star[i2].getRightSide() > missle[i].getLeftSide()
              && star[i2].getTop() > missle[i].getBottom()
              && star[i2].getBottom() < missle[i].getTop()) {
            if (!rocketRight) star[i2].setXPos(getWidth2());
            else star[i2].setXPos(0);
            star[i2].setYPos((int) (Math.random() * getHeight2()));
            missle[i].setActive(false);
            score++;
          }
        }
      }
    }

    if (lives == 0) {
      GameOver = true;
      if (score > highscore) highscore = score;
    }

    if (bgSound.donePlaying) {
      bgSound = new sound("Sound/starwars.wav");
    }

    if (ffsize >= 2) {
      ff = false;
      ffsize = 1.0;
    }

    TimeCount++;
  }
Пример #2
0
  public void animate() {
    if (animateFirstTime) {
      animateFirstTime = false;
      if (xsize != getSize().width || ysize != getSize().height) {
        xsize = getSize().width;
        ysize = getSize().height;
      }
      readFile();
      outerSpaceImage = Toolkit.getDefaultToolkit().getImage("./outerSpace.jpg");
      rocketImage = Toolkit.getDefaultToolkit().getImage("./rocket.GIF");
      reset();
    }
    if (gameOver) return;
    if (rocketLife <= 0) gameOver = true;
    // missile stuff
    for (int index = 0; index < missile.length; index++) {
      if (missile[index].active) {
        if (missile[index].missileRight) missile[index].xPos += 5;
        else missile[index].xPos -= 5;

        if (missile[index].xPos >= getWidth2() || missile[index].xPos <= 0)
          missile[index].active = false;
      }
    }
    // star speeds
    for (int index = 0; index < numStars; index++) {
      starXPos[index] -= rocketXSpeed;
    }
    rocketYPos -= rocketYSpeed;
    // stop rocket at edges of screen.
    if (rocketYPos >= getHeight2()) {
      rocketYSpeed = 0;
      rocketYPos = getHeight2();
    } else if (rocketYPos <= 0) {
      rocketYSpeed = 0;
      rocketYPos = 0;
    }

    for (int index = 0; index < numStars; index++) {
      if (starXPos[index] > getWidth2()) {
        starYPos[index] = (int) (Math.random() * getHeight2());
        starXPos[index] = 0;
      } else if (starXPos[index] < 0) {
        starYPos[index] = (int) (Math.random() * getHeight2());
        starXPos[index] = getWidth2();
      }
    }
    boolean hit = false;
    for (int index = 0; index < numStars; index++) {
      if (starActive[index]) {
        if (starXPos[index] - 10 < rocketXPos
            && starXPos[index] + 10 > rocketXPos
            && starYPos[index] - 10 < rocketYPos
            && starYPos[index] + 10 > rocketYPos) {
          hit = true;
          if (starHit != index) {
            starHit = index;
            zsound = new sound("ouch.wav");
            rocketLife--;
          }
        }
      }
    }
    for (int count = 0; count < numStars; count++) {
      for (int index = 0; index < missile.length; index++) {
        if (missile[index].active && starActive[count]) {
          if (starXPos[count] - 10 < missile[index].xPos
              && starXPos[count] + 10 > missile[index].xPos
              && starYPos[count] - 10 < missile[index].yPos
              && starYPos[count] + 10 > missile[index].yPos) {
            missile[index].active = false;
            starActive[count] = false;
            score++;
            if (score > highScore) highScore = score;
          }
        }
      }
    }
    if (!hit) starHit = -1;
    if (rocketXSpeed > 0) rocketRight = true;
    else if (rocketXSpeed < 0) rocketRight = false;
  }