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 EnemyConfiguration(int config, EnemyPools pools) { float spawnHeight = GameConstants.GAME_HEIGHT + 200; float gameWidth = GameConstants.GAME_WIDTH; enemyList = new LinkedList<Enemy>(); this.setY(spawnHeight); if (config == 0) { } else if (config == 1) { // four fighters Enemy[] enemies = new Enemy[4]; for (int i = 0; i < 4; i++) { enemies[i] = pools.enemyFighterPool.obtain(); } rowHeight = enemies[0].getHeight(); float enemyOffset = (enemies[0].getWidth() / 4) * 2; enemies[0].init((gameWidth / 8) * 1 - enemyOffset, this.rowY, Behavior.WIGGLE); enemies[1].init((gameWidth / 8) * 3 - enemyOffset, this.rowY, Behavior.WIGGLE); enemies[2].init((gameWidth / 8) * 5 - enemyOffset, this.rowY, Behavior.WIGGLE); enemies[3].init((gameWidth / 8) * 7 - enemyOffset, this.rowY, Behavior.WIGGLE); for (int i = 0; i < 4; i++) { enemyList.add(enemies[i]); } } else if (config == 2) { // a row of 7 small enemies Enemy[] enemies = new Enemy[7]; for (int i = 0; i < 7; i++) { enemies[i] = pools.enemySmallPool.obtain(); } rowHeight = enemies[0].getHeight(); float enemyOffset = (enemies[0].getWidth() / 4) * 2; for (int i = 1; i < 8; i++) { enemies[i - 1].init((gameWidth / 8) * i - enemyOffset, this.rowY, Behavior.WIGGLE); enemyList.add(enemies[i - 1]); } } else if (config == 3) { // single patrolling machine gun enemy Enemy e = pools.enemyMgPool.obtain(); rowHeight = e.getHeight(); float enemyX = (0 + (int) (Math.random() * ((gameWidth - e.getWidth()) + 1))); e.init(enemyX, this.rowY, Behavior.PATROL); enemyList.add(e); } else if (config == 4) { // boss Enemy e = pools.enemyBossPool.obtain(); rowHeight = e.getHeight(); e.init((gameWidth / 2) - (e.getWidth() / 2), this.rowY, Behavior.TRACK_PLAYER); enemyList.add(e); } else if (config == 5) { // single blaster enemy Enemy e = pools.enemyBlasterPool.obtain(); rowHeight = e.getHeight(); e.init((gameWidth / 2) - (e.getWidth() / 2), this.rowY, Behavior.TRACK_PLAYER); enemyList.add(e); } else if (config == 6) { // single boss 2 and hunter Enemy e1 = pools.enemyBoss2Pool.obtain(); Enemy e2 = pools.enemyHunterPool.obtain(); rowHeight = e1.getHeight() + 200; e1.init((gameWidth / 2) - (e1.getWidth() / 2), this.rowY, Behavior.TRACK_PLAYER); e2.init((gameWidth / 2) - (e2.getWidth() / 2), this.rowY + 200, Behavior.HUNT); enemyList.add(e1); enemyList.add(e2); } else if (config == 7) { // single hunter Enemy e = pools.enemyHunterPool.obtain(); rowHeight = e.getHeight(); e.init((gameWidth / 2) - (e.getWidth() / 2), this.rowY, Behavior.HUNT); enemyList.add(e); } else if (config == 8) { // single boss 3 Enemy e = pools.enemyBoss3Pool.obtain(); rowHeight = e.getHeight(); e.init((gameWidth / 2) - (e.getWidth() / 2), this.rowY, Behavior.PATROL); enemyList.add(e); } else if (config == 9) { // single boss 4 Enemy e = pools.enemyBoss4Pool.obtain(); rowHeight = e.getHeight(); e.init((gameWidth / 2) - (e.getWidth() / 2), this.rowY, Behavior.PATROL); enemyList.add(e); } else if (config == 10) { // two wiggling machine gun enemies Enemy e1 = pools.enemyMgPool.obtain(); Enemy e2 = pools.enemyMgPool.obtain(); rowHeight = e1.getHeight(); e1.init(gameWidth / 4 - e1.getWidth() / 2, this.rowY, Behavior.WIGGLE); e2.init((gameWidth / 4) * 3 - e2.getWidth() / 2, this.rowY, Behavior.WIGGLE); enemyList.add(e1); enemyList.add(e2); } else if (config == 11) { // two wiggling blaster enemies Enemy e1 = pools.enemyBlasterPool.obtain(); Enemy e2 = pools.enemyBlasterPool.obtain(); rowHeight = e1.getHeight(); e1.init(gameWidth / 4 - e1.getWidth() / 2, this.rowY, Behavior.WIGGLE); e2.init((gameWidth / 4) * 3 - e2.getWidth() / 2, this.rowY, Behavior.WIGGLE); enemyList.add(e1); enemyList.add(e2); } else if (config == 12) { // three wiggling fighter enemies Enemy[] enemies = new Enemy[3]; for (int i = 0; i < 3; i++) { enemies[i] = pools.enemyFighterPool.obtain(); } rowHeight = enemies[0].getHeight(); enemies[0].init((gameWidth / 4) - enemies[0].getWidth() / 2, this.rowY, Behavior.WIGGLE); enemies[1].init((gameWidth / 4) * 2 - enemies[1].getWidth() / 2, this.rowY, Behavior.WIGGLE); enemies[2].init((gameWidth / 4) * 3 - enemies[2].getWidth() / 2, this.rowY, Behavior.WIGGLE); for (int i = 0; i < 3; i++) { enemyList.add(enemies[i]); } } else if (config == 13) { // two small enemies Enemy e1 = pools.enemySmallPool.obtain(); Enemy e2 = pools.enemySmallPool.obtain(); rowHeight = e1.getHeight(); e1.init(gameWidth / 4 - e1.getWidth() / 2, this.rowY, Behavior.WIGGLE); e2.init((gameWidth / 4) * 3 - e2.getWidth() / 2, this.rowY, Behavior.WIGGLE); enemyList.add(e1); enemyList.add(e2); } else if (config == 14) { // four small enemies Enemy[] enemies = new Enemy[4]; for (int i = 0; i < 4; i++) { enemies[i] = pools.enemySmallPool.obtain(); } rowHeight = enemies[0].getHeight(); float enemyOffset = (enemies[0].getWidth() / 4) * 2; enemies[0].init((gameWidth / 8) * 1 - enemyOffset, this.rowY, Behavior.WIGGLE); enemies[1].init((gameWidth / 8) * 3 - enemyOffset, this.rowY, Behavior.WIGGLE); enemies[2].init((gameWidth / 8) * 5 - enemyOffset, this.rowY, Behavior.WIGGLE); enemies[3].init((gameWidth / 8) * 7 - enemyOffset, this.rowY, Behavior.WIGGLE); for (int i = 0; i < 4; i++) { enemyList.add(enemies[i]); } } else if (config == 15) { // two wiggling fighter enemies Enemy e1 = pools.enemyFighterPool.obtain(); Enemy e2 = pools.enemyFighterPool.obtain(); rowHeight = e1.getHeight(); e1.init(gameWidth / 4 - e1.getWidth() / 2, this.rowY, Behavior.WIGGLE); e2.init((gameWidth / 4) * 3 - e2.getWidth() / 2, this.rowY, Behavior.WIGGLE); enemyList.add(e1); enemyList.add(e2); } else if (config == 16) { // single centered wiggling mg Enemy e = pools.enemyMgPool.obtain(); e.init(gameWidth / 2 - e.getWidth() / 2, this.rowY, Behavior.WIGGLE); rowHeight = e.getHeight(); enemyList.add(e); } else if (config == 17) { // 3 small enemies Enemy[] enemies = new Enemy[3]; for (int i = 0; i < 3; i++) { enemies[i] = pools.enemySmallPool.obtain(); } rowHeight = enemies[0].getHeight(); enemies[0].init((gameWidth / 4) - enemies[0].getWidth() / 2, this.rowY, Behavior.WIGGLE); enemies[1].init((gameWidth / 4) * 2 - enemies[1].getWidth() / 2, this.rowY, Behavior.WIGGLE); enemies[2].init((gameWidth / 4) * 3 - enemies[2].getWidth() / 2, this.rowY, Behavior.WIGGLE); for (int i = 0; i < 3; i++) { enemyList.add(enemies[i]); } } }