diff --git a/Welt.java b/Welt.java index 33c7b29..2887dac 100644 --- a/Welt.java +++ b/Welt.java @@ -35,7 +35,11 @@ class Welt implements Drawable ArrayList remove = new ArrayList(); for (Rectangle r : _obstacles) { + // Move all obstacles accoring to speed r.setPos(r.getX() - (elapsed * 1e-3 * _speed), r.getY()); + + // Mark obstacles that are off screen for removal to avoid + // concurrent modifications if (r.getX() < -r.getWidth()) { remove.add(r); @@ -45,11 +49,15 @@ class Welt implements Drawable { _obstacles.remove(r); } + + // Add a new obstacle after DISTANCE Rectangle lastObstacle = _obstacles.get(_obstacles.size() - 1); if (lastObstacle.getX() + lastObstacle.getWidth() < TurtleWelt.WIDTH - DISTANCE) { createObstacle(TurtleWelt.WIDTH); } + + // Increase speed according to acceleration _speed += _acc * elapsed * 1e-3; }