/** * 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; }
public float getRowY() { if (!this.isEmpty()) { Enemy e = enemyList.getFirst(); return e.getY(); } return -100; }
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)); } }
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>(); }
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(); } }
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>(); }
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(); } } }
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
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); } }