diff --git a/res/levels/test.level b/res/levels/test.level index 1d572bf..2426e07 100644 --- a/res/levels/test.level +++ b/res/levels/test.level @@ -1,10 +1,12 @@ name:Lustiger Levelname backgroundMusic:music/bla.wav -background:FooBackground +background:StarBackground - -[0-20] -spawn:EnemyTwo,2,2 -[21-25] +[0-4] +spawn:EnemyOne,1,1 +[5-10] +spawn:EnemyTwo,2,10 +[11-25] spawn:EnemyThree,2,4 spawn:EnemyTwo,5,6 [26-30] diff --git a/src/de/teamteamteam/spacescooter/entity/LivingEntity.java b/src/de/teamteamteam/spacescooter/entity/LivingEntity.java index 2b76b7f..41a6705 100644 --- a/src/de/teamteamteam/spacescooter/entity/LivingEntity.java +++ b/src/de/teamteamteam/spacescooter/entity/LivingEntity.java @@ -109,8 +109,7 @@ public abstract class LivingEntity extends CollidableEntity implements Hittable * The default way the LivingEntity explodes. Override this method for a * different explosion behaviour. */ - public void explode() { - } + public abstract void explode(); /** * The default way the LivingEntity dies. Override this method for a diff --git a/src/de/teamteamteam/spacescooter/entity/Player.java b/src/de/teamteamteam/spacescooter/entity/Player.java index 54277da..b6dab6a 100644 --- a/src/de/teamteamteam/spacescooter/entity/Player.java +++ b/src/de/teamteamteam/spacescooter/entity/Player.java @@ -126,7 +126,6 @@ public class Player extends ShootingEntity implements KeyboardListener { */ @Override public void explode() { - super.explode(); SoundSystem.playSound("sounds/abgang.wav"); } diff --git a/src/de/teamteamteam/spacescooter/entity/enemy/Enemy.java b/src/de/teamteamteam/spacescooter/entity/enemy/Enemy.java index b710091..f7649af 100644 --- a/src/de/teamteamteam/spacescooter/entity/enemy/Enemy.java +++ b/src/de/teamteamteam/spacescooter/entity/enemy/Enemy.java @@ -40,7 +40,7 @@ public abstract class Enemy extends ShootingEntity { if(willShoot == true){ this.shoot(); } - if(this.getX() < 0-getWidth()){ + if(this.getX() < 0-this.getWidth()) { this.remove(); } } diff --git a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyBossMinion.java b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyBossMinion.java index c6b1731..6ef4a5e 100644 --- a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyBossMinion.java +++ b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyBossMinion.java @@ -37,7 +37,6 @@ public class EnemyBossMinion extends Enemy{ /** * Custom MultiExplosion for this enemy. */ - @Override public void explode() { new MultiExplosion(this.getX(), this.getY()); } @@ -45,12 +44,12 @@ public class EnemyBossMinion extends Enemy{ @Override public void update() { super.update(); - this.setPosition(this.getX()-1, this.getY()); + this.transpose(-1, 0); Player player = GameScreen.getPlayer(); if(this.getY() < player.getY()){ this.newY += ySpeed; this.setPosition(this.getX(), (int) newY); - }else if(this.getY() > player.getY()){ + } else if(this.getY() > player.getY()) { this.newY -= ySpeed; this.setPosition(this.getX(), (int) newY); } diff --git a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyFour.java b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyFour.java index e8834ec..cef862e 100644 --- a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyFour.java +++ b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyFour.java @@ -3,6 +3,8 @@ package de.teamteamteam.spacescooter.entity.enemy; import java.awt.Point; import java.util.ArrayList; +import de.teamteamteam.spacescooter.entity.explosion.ExplosionOne; + public class EnemyFour extends Enemy{ private ArrayList points; @@ -63,5 +65,10 @@ public class EnemyFour extends Enemy{ this.remove(); } } + + @Override + public void explode() { + new ExplosionOne(this.getX(), this.getY()); + } } diff --git a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyOne.java b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyOne.java index 516c802..2a75ecb 100644 --- a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyOne.java +++ b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyOne.java @@ -1,5 +1,7 @@ package de.teamteamteam.spacescooter.entity.enemy; +import de.teamteamteam.spacescooter.entity.explosion.ExplosionOne; + public class EnemyOne extends Enemy { public EnemyOne(int x, int y) { @@ -20,5 +22,10 @@ public class EnemyOne extends Enemy { public void update() { super.update(); } + + @Override + public void explode() { + new ExplosionOne(this.getX(), this.getY()); + } } diff --git a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyTwo.java b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyTwo.java index cdf2189..cd170a4 100644 --- a/src/de/teamteamteam/spacescooter/entity/enemy/EnemyTwo.java +++ b/src/de/teamteamteam/spacescooter/entity/enemy/EnemyTwo.java @@ -1,5 +1,6 @@ package de.teamteamteam.spacescooter.entity.enemy; +import de.teamteamteam.spacescooter.entity.explosion.ExplosionTwo; import de.teamteamteam.spacescooter.utility.GameConfig; import de.teamteamteam.spacescooter.utility.Random; @@ -28,5 +29,10 @@ public class EnemyTwo extends Enemy{ this.remove(); } } + + @Override + public void explode() { + new ExplosionTwo(this.getX(), this.getY()); + } } diff --git a/src/de/teamteamteam/spacescooter/level/Level.java b/src/de/teamteamteam/spacescooter/level/Level.java index e99f5d4..fdad64a 100644 --- a/src/de/teamteamteam/spacescooter/level/Level.java +++ b/src/de/teamteamteam/spacescooter/level/Level.java @@ -41,7 +41,6 @@ public final class Level { public Level(String levelConfig) { this.levelClock = 0; this.config = Loader.getLevelConfigByFilename(levelConfig); - System.out.println(this.config); } @@ -49,7 +48,7 @@ public final class Level { * Initialize the level based on the LevelConfig attributes. */ public void doBuildUp() { - new StarBackground(0, 50); + this.spawnEntityByAvailableName(Entity.availableNames.valueOf(this.config.background), 0, 50); GameScreen.setPlayer(new Player(200, 300)); } @@ -74,8 +73,6 @@ public final class Level { if (Keyboard.isKeyDown(KeyEvent.VK_0)) { new EnemyBoss(400,400); } - //Increase levelClock - this.levelClock++; //Check whether the current interval is configured int currentIntervalIndex = this.config.getIntervalIndexByCurrentTime(this.levelClock); if(currentIntervalIndex == -1) return; //Nothing to do @@ -105,6 +102,8 @@ public final class Level { } } } + //Increase levelClock + this.levelClock++; } /** @@ -122,6 +121,9 @@ public final class Level { */ private void spawnEntityByAvailableName(Entity.availableNames entity, int x, int y) { switch(entity) { + case StarBackground: + new StarBackground(x, y); + break; case EnemyOne: new EnemyOne(x, y); break; diff --git a/src/de/teamteamteam/spacescooter/level/LevelConfig.java b/src/de/teamteamteam/spacescooter/level/LevelConfig.java index 433f1f3..f99facd 100644 --- a/src/de/teamteamteam/spacescooter/level/LevelConfig.java +++ b/src/de/teamteamteam/spacescooter/level/LevelConfig.java @@ -93,7 +93,7 @@ public class LevelConfig { */ public int getIntervalIndexByCurrentTime(int time) { for(int[] interval : this.intervalList) { - if(interval[0] <= time && interval[1] >= time) { + if(time >= interval[0] && time < interval[1]) { return this.intervalList.indexOf(interval); } } @@ -104,7 +104,6 @@ public class LevelConfig { * Add a given EntitySpawnRule to the ruleList. */ public void addEntitySpawnRule(int intervalStart, int intervalEnd, String entityName, int amount, int spawnRate) { - System.out.println("Adding rule for " + intervalStart + " to " + intervalEnd + ": " + entityName + ", " + amount + ", " + spawnRate); int intervalIndex = this.getIntervalIndexByBorders(intervalStart, intervalEnd); if(intervalIndex == -1) { System.err.println("No Interval for rule found!");