@Override public void handle(ActionEvent actionEvent) { queue.add(new BreakEvent(timer.getNextTic())); while (!queue.isEmpty()) { TimerEvent event = queue.poll(); if (event instanceof BreakEvent) { moveBalls(timer.getDtAndSetTime(event.getTimestamp())); break; } CollisionEvent collisionEvent = (CollisionEvent) event; if (collisionEvent.isValid()) { moveBalls(timer.getDtAndSetTime(event.getTimestamp())); handleCollisions(collisionEvent); } } }