Please note, this blog entry is from a previous course. You might want to check out the current one.
That’s a quick one. In the last completion block of the destroy animation check if there are any bricks left:
private func destroyBrickAtIndex(index: Int) { ... ... UIView.animateWithDuration(1.0, animations: { ... }, completion: { (success) -> Void in ... ... if self.bricks.count == 0 { self.levelFinished() } }) ... }
Remove all balls from screen, and display the alert. When the alert gets confirmed regenerate the bricks:
func levelFinished() { for ball in breakout.balls { breakout.removeBall(ball) } let alertController = UIAlertController(title: "Game Over", message: "", preferredStyle: .Alert) alertController.addAction(UIAlertAction(title: "Play Again", style: .Default, handler: { (action) in self.levelOne() })) presentViewController(alertController, animated: true, completion: nil) }
The complete code for step #4 is available on GitHub.