How to Create a 2D Snake Game in Flutter

Jan 17 2023 Dart 2.17, Flutter 3.0, Android Studio or VS Code

Part 1: How to Create a 2D Snake Game in Flutter

12. Show Game Over Dialog

Episode complete

Play next episode

Next
Save for later
About this episode
See forum comments
Cinema mode Mark complete Download course materials
Previous episode: 11. Detecting Collisions Next episode: 13. Restarting the Game

Add detectCollision to the getNextPosition method.

Heads up... You've reached locked video content where the transcript will be shown as obfuscated text.

You can unlock the rest of this video course, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.

In this episode, you will be using the provided showGameOverDialog method to display a game-over dialog to the user when the Snake collides with the play-area boundaries. The showGameOverDialog method is provided as part of the starter project.

Offset getNextPosition(Offset position) {
    ...
    if (detectCollision(position) == true) {
        if (timer != null && timer.isActive) timer.cancel();
        showGameOverDialog(); // Add this
        return position;
    }
    ...
    return nextPosition;
}
Future<Offset> getNextPosition(Offset position) async {
    ...

    if (detectCollision(position) == true) {
      if (timer != null && timer.isActive) timer.cancel();
      await Future.delayed(Duration(milliseconds: 500), () => showGameOverDialog());
      return position;
    }
    ...
}
void draw() async {
    ...
    // Update this
    positions[0] = await getNextPosition(positions[0]);
}