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++; }
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; }