From 402948df8e9d9771851c87e6bab0b22e0c678cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Sat, 10 Apr 2021 19:34:08 +0200 Subject: [PATCH] Add mini game with timer --- android/gradle.properties | 4 +-- lib/main.dart | 69 +++++++++++++++++++++++++++++++++------ 2 files changed, 61 insertions(+), 12 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index a5ad5f8..c8ded36 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=1.1.2 -app.versionCode=5 +app.versionName=1.2.0 +app.versionCode=6 diff --git a/lib/main.dart b/lib/main.dart index 42d3a1d..efb9aa0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'dart:math'; +import 'dart:async'; void main() { runApp(MyApp()); @@ -124,6 +125,8 @@ class MyHomePage extends StatefulWidget { class _MyHomePageState extends State<MyHomePage> { String _randomLetter = ''; String _randomCategory = ''; + Timer _timer; + int _start = 10; void _pickRandomLetter() { setState(() { @@ -137,12 +140,46 @@ class _MyHomePageState extends State<MyHomePage> { }); } + void _startMiniGame() { + _pickRandomLetter(); + _pickRandomCategory(); + startTimer(); + } + @override void initState() { _pickRandomLetter(); _pickRandomCategory(); } + void startTimer() { + const oneSec = const Duration(seconds: 1); + if (_timer != null) { + _timer.cancel(); + } + _start = 10; + _timer = new Timer.periodic( + oneSec, + (Timer timer) { + if (_start == 0) { + setState(() { + timer.cancel(); + }); + } else { + setState(() { + _start--; + }); + } + }, + ); + } + + @override + void dispose() { + _timer.cancel(); + super.dispose(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -156,10 +193,6 @@ class _MyHomePageState extends State<MyHomePage> { Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ - Text( - 'Lettre aléatoire :', - style: Theme.of(context).textTheme.headline4, - ), Text( '$_randomLetter', style: Theme.of(context).textTheme.headline2, @@ -177,14 +210,10 @@ class _MyHomePageState extends State<MyHomePage> { ), ], ), - SizedBox(height: 50), + SizedBox(height: 20), Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ - Text( - 'Catégorie aléatoire :', - style: Theme.of(context).textTheme.headline4, - ), Text( '$_randomCategory', style: Theme.of(context).textTheme.headline3, @@ -201,7 +230,27 @@ class _MyHomePageState extends State<MyHomePage> { ), ), ], - ) + ), + SizedBox(height: 40), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: <Widget>[ + FlatButton( + onPressed: _startMiniGame, + color: Colors.blue, + padding: EdgeInsets.all(10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: <Widget>[ + Text( + '$_start', + style: Theme.of(context).textTheme.headline2, + ), + ], + ), + ), + ], + ), ], ), ), -- GitLab