import java.util.List; import java.util.ArrayList; class GameScreen { private final List _drawables; private final Bird _bird; private final Welt _welt; private double _totalTime; private int _try; public GameScreen() { _drawables = new ArrayList(); _bird = new Bird(this); _welt = new Welt(this); _totalTime = 0; _try = 1; } /* * Elapsed time is expected to be in ms */ public void update(double elapsed) { _bird.update(elapsed); _welt.update(elapsed); _totalTime += elapsed; System.out.print("\r" + _try + " - Time survived: " + (int)(_totalTime * 1e-3) + "s, " + "speed: " + (int)_welt.getSpeed() + "px/s"); Rectangle birdRect = _bird.getRect(); if (_welt.checkCollision(_bird.getRect()) || birdRect.getY() + birdRect.getHeight() > TurtleWelt.HEIGHT || birdRect.getY() + birdRect.getHeight() < 0) { System.out.print("\n"); ++_try; _totalTime = 0; _bird.reset(); _welt.reset(); } } public void draw(Turtle turtle, double elapsed) { TurtleWelt.globaleWelt.bildschirmEinfaerben(255, 255, 255); for (var d : _drawables) { d.draw(turtle, elapsed); } } public void addDrawable(Drawable d) { _drawables.add(d); } public void jump() { _bird.jump(); } }