From 94adfdd3f67f77ee0ad474c506f84c5e382dc2e0 Mon Sep 17 00:00:00 2001 From: Lucas Delanier Date: Sun, 5 Feb 2023 16:48:58 +0100 Subject: [PATCH] add ingames pages with interactions --- assets/images/Strike_background.png | Bin 0 -> 6635 bytes assets/images/congrats_background.png | Bin 0 -> 16228 bytes lib/views/ingame_screen.dart | 15 +- lib/widgets/achievements_list_widget.dart | 1 + lib/widgets/ingame_widgets.dart | 452 +++++++++++++++++++++- lib/widgets/scores_list_widget.dart | 1 + 6 files changed, 459 insertions(+), 10 deletions(-) create mode 100644 assets/images/Strike_background.png create mode 100644 assets/images/congrats_background.png diff --git a/assets/images/Strike_background.png b/assets/images/Strike_background.png new file mode 100644 index 0000000000000000000000000000000000000000..f7dd871dafcf2c91927cd7f396d7e99f3c77f41a GIT binary patch literal 6635 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 KWSzK4(EkB`kX?WP literal 0 HcmV?d00001 diff --git a/lib/views/ingame_screen.dart b/lib/views/ingame_screen.dart index 7078746..35b7e61 100644 --- a/lib/views/ingame_screen.dart +++ b/lib/views/ingame_screen.dart @@ -14,6 +14,13 @@ class InGameScreen extends StatefulWidget { } class _InGameScreenState extends State { + late Widget widgetHolder; + + void initState() { + widgetHolder = InGameCardConfig(); + super.initState(); + } + @override Widget build(BuildContext context) { return Stack( @@ -37,10 +44,14 @@ class _InGameScreenState extends State { SizedBox( height: 120, ), - InGameCardConfig(), + widgetHolder, Spacer(), ElevatedButton( - onPressed: () {}, + onPressed: () { + setState(() { + widgetHolder = FinalScoreBoard(); + }); + }, child: Text( "PLAY", style: GoogleFonts.roboto( diff --git a/lib/widgets/achievements_list_widget.dart b/lib/widgets/achievements_list_widget.dart index 32cd4a3..b79be72 100644 --- a/lib/widgets/achievements_list_widget.dart +++ b/lib/widgets/achievements_list_widget.dart @@ -41,6 +41,7 @@ class ListAchievementWidget extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.end, children: [ Container( + margin: EdgeInsets.fromLTRB(20, 0, 20, 0), width: 520, height: 520, decoration: BoxDecoration( diff --git a/lib/widgets/ingame_widgets.dart b/lib/widgets/ingame_widgets.dart index 8fcbd95..ddfbc7d 100644 --- a/lib/widgets/ingame_widgets.dart +++ b/lib/widgets/ingame_widgets.dart @@ -1,8 +1,176 @@ +import 'dart:ui'; + +import 'package:bowl_in/widgets/profil_listpodium_widget.dart'; import 'package:bowl_in/widgets/scores_list_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; +class FinalScoreBoard extends StatefulWidget { + const FinalScoreBoard({Key? key}) : super(key: key); + + @override + State createState() => _FinalScoreBoardState(); +} + +class _FinalScoreBoardState extends State { + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.fromLTRB(30, 0, 30, 35), + width: double.infinity, + height: 470, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/ingame_cardgame.png"), + fit: BoxFit.fill), + boxShadow: [ + BoxShadow( + color: CupertinoColors.black.withOpacity(0.15), + blurRadius: 10.0, + spreadRadius: 5.0, + ), + ]), + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + Padding( + padding: EdgeInsets.fromLTRB(15, 5, 15, 50), + child: RichText( + text: TextSpan( + style: DefaultTextStyle.of(context).style, + children: [ + TextSpan( + text: 'GAME OVER', + style: GoogleFonts.roboto( + fontSize: 15, + color: CupertinoColors.black, + fontWeight: FontWeight.w900, + decoration: TextDecoration.none)), + ], + ), + )), + Expanded( + child: Stack( + alignment: Alignment.topCenter, + children: [ + Positioned( + child: PodiumGameOverWidget( + isfirst: 2, + pseudo: 'Lucas', + score: 123, + ), + top: 70, + left: 30, + ), + Positioned( + child: PodiumGameOverWidget( + isfirst: 1, + pseudo: 'Momo', + score: 160, + ), + top: 10, + ), + Positioned( + child: PodiumGameOverWidget( + isfirst: 3, + pseudo: 'popo', + score: 110, + ), + top: 70, + right: 30, + ) + ], + )), + Container( + width: double.infinity, + height: 100, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/congrats_background.png"), + fit: BoxFit.cover), + ), + ), + Padding( + padding: EdgeInsets.fromLTRB(0, 0, 0, 10), + child: Align( + child: Text( + "Play again", + style: GoogleFonts.roboto( + decoration: TextDecoration.none, + color: Colors.grey, + fontWeight: FontWeight.bold, + fontSize: 20), + ), + ), + ) + ])); + } +} + +class PodiumGameOverWidget extends StatelessWidget { + final int isfirst; + final String pseudo; + final int score; + const PodiumGameOverWidget( + {Key? key, + required this.isfirst, + required this.pseudo, + required this.score}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Stack( + clipBehavior: Clip.none, + children: [ + Container( + width: this.isfirst == 1 ? 65 : 50, + height: this.isfirst == 1 ? 65 : 50, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/image_user_red.png"), + fit: BoxFit.cover), + borderRadius: BorderRadius.all(Radius.circular(70)), + ), + ), + if (isfirst == 1) + Positioned( + bottom: -5, + right: -30, + child: Image.asset( + 'assets/images/image_trophee.png', + height: 60, + width: 60, + ), + ), + ], + ), + Padding( + padding: EdgeInsets.fromLTRB(0, 3, 0, 0), + child: Text( + this.pseudo, + style: GoogleFonts.roboto( + color: Colors.black, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + fontSize: 20), + ), + ), + Text( + this.score.toString(), + style: GoogleFonts.roboto( + color: Colors.pink, + fontStyle: FontStyle.italic, + fontWeight: FontWeight.w900, + fontSize: this.isfirst == 1 ? 60 : 40, + decoration: TextDecoration.none), + ), + ], + ); + } +} + class InGameCardConfig extends StatefulWidget { const InGameCardConfig({Key? key}) : super(key: key); @@ -14,7 +182,7 @@ class _InGameCardConfigState extends State { @override Widget build(BuildContext context) { return Container( - margin: EdgeInsets.fromLTRB(35, 0, 30, 35), + margin: EdgeInsets.fromLTRB(30, 0, 30, 35), width: MediaQuery.of(context).size.width, height: 470, decoration: BoxDecoration( @@ -59,8 +227,9 @@ class _InGameCardConfigState extends State { Image( image: AssetImage("assets/images/start_sentence.png"), ), + Spacer(), Padding( - padding: EdgeInsets.fromLTRB(15, 20, 15, 15), + padding: EdgeInsets.fromLTRB(15, 0, 15, 15), child: ElevatedButton( onPressed: () {}, child: Text( @@ -186,7 +355,7 @@ class _InGameCardThrowState extends State { @override Widget build(BuildContext context) { return Container( - margin: EdgeInsets.fromLTRB(35, 0, 30, 35), + margin: EdgeInsets.fromLTRB(30, 0, 30, 35), width: MediaQuery.of(context).size.width, height: 470, decoration: BoxDecoration( @@ -201,33 +370,300 @@ class _InGameCardThrowState extends State { ), ]), child: Column( - crossAxisAlignment: CrossAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.fromLTRB(0, 5, 15, 0), + padding: EdgeInsets.fromLTRB(15, 5, 0, 0), child: RichText( text: TextSpan( style: DefaultTextStyle.of(context).style, children: [ TextSpan( - text: 'Party code : ', + text: 'Round ', style: GoogleFonts.roboto( fontSize: 15, color: CupertinoColors.black, fontWeight: FontWeight.w400, decoration: TextDecoration.none)), TextSpan( - text: '#172 520', + text: '1 - 1st', style: GoogleFonts.roboto( fontSize: 18, - color: Color(0xffF40375), + color: CupertinoColors.black, fontWeight: FontWeight.bold, decoration: TextDecoration.none)), + TextSpan( + text: ' Throw', + style: GoogleFonts.roboto( + fontSize: 15, + color: CupertinoColors.black, + fontWeight: FontWeight.w400, + decoration: TextDecoration.none)), ], ), )), + Padding( + padding: EdgeInsets.fromLTRB(0, 20, 0, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Round_picture( + pseudo: "Lucas", + image: "assets/images/image_user_red.png"), + ], + )), + NumberPad(), ], ), ); } } + +class Round_picture extends StatelessWidget { + final String pseudo; + final String image; + const Round_picture({Key? key, required this.pseudo, required this.image}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 70, + height: 70, + decoration: BoxDecoration( + image: DecorationImage(image: AssetImage(image), fit: BoxFit.cover), + borderRadius: BorderRadius.all(Radius.circular(70)), + ), + ), + Text( + pseudo, + style: GoogleFonts.roboto( + color: CupertinoColors.black, + decoration: TextDecoration.none, + fontSize: 30), + ), + ], + ); + } +} + +class StrikeButton extends StatelessWidget { + final int currentSelected; + final IntCallback onSonChanged; + const StrikeButton( + {Key? key, required this.onSonChanged, required this.currentSelected}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + onSonChanged(10); + }, + child: Container( + width: double.infinity, + height: 100, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/Strike_background.png"), + )), + child: Center( + child: Text( + "STRIKE !", + style: GoogleFonts.roboto( + color: + currentSelected == 10 ? Colors.pink : CupertinoColors.black, + decoration: TextDecoration.none, + fontWeight: FontWeight.w900, + fontStyle: FontStyle.italic, + fontSize: 40), + )), + ), + ); + } +} + +class NumberPad extends StatefulWidget { + const NumberPad({Key? key}) : super(key: key); + + @override + State createState() => _NumberPadState(); +} + +class _NumberPadState extends State { + int NumSelected = 100; + + void updateId(int newNum) { + print(newNum); + setState(() { + NumSelected = newNum; + }); + } + + void initState() { + NumSelected = 100; + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.fromLTRB(50, 0, 50, 0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Number( + currentSelected: NumSelected, + num: 1, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + Number( + currentSelected: NumSelected, + num: 2, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + Number( + currentSelected: NumSelected, + num: 3, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Number( + currentSelected: NumSelected, + num: 4, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + Number( + currentSelected: NumSelected, + num: 5, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + Number( + currentSelected: NumSelected, + num: 6, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Number( + currentSelected: NumSelected, + num: 7, + isSelectable: 1, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + Number( + currentSelected: NumSelected, + num: 8, + isSelectable: 0, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + Number( + currentSelected: NumSelected, + num: 9, + isSelectable: 0, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + ], + ), + ], + ), + ), + StrikeButton( + currentSelected: NumSelected, + onSonChanged: (int newId) { + updateId(newId); + }, + ), + ], + ); + } +} + +typedef void IntCallback(int id); + +class Number extends StatefulWidget { + final int num; + final int currentSelected; + final int isSelectable; + final IntCallback onSonChanged; + const Number( + {Key? key, + required this.num, + required this.isSelectable, + required this.onSonChanged, + required this.currentSelected}) + : super(key: key); + + @override + State createState() => _NumberState(); +} + +class _NumberState extends State { + @override + Widget build(BuildContext context) { + return widget.isSelectable == 1 + ? GestureDetector( + onTap: () { + widget.onSonChanged(widget.num); + }, + child: Text( + widget.num.toString(), + style: GoogleFonts.roboto( + color: widget.currentSelected == widget.num + ? Colors.pink + : Colors.black, + decoration: TextDecoration.none, + fontWeight: FontWeight.w300, + fontSize: 50), + ), + ) + : Text( + widget.num.toString(), + style: GoogleFonts.roboto( + color: Colors.grey, + decoration: TextDecoration.none, + fontWeight: FontWeight.w300, + fontSize: 50), + ); + } +} diff --git a/lib/widgets/scores_list_widget.dart b/lib/widgets/scores_list_widget.dart index b763489..01e20c2 100644 --- a/lib/widgets/scores_list_widget.dart +++ b/lib/widgets/scores_list_widget.dart @@ -15,6 +15,7 @@ class CardGame extends StatelessWidget { alignment: AlignmentDirectional.centerEnd, children: [ Container( + margin: EdgeInsets.fromLTRB(10, 0, 10, 0), height: 100, width: 300, decoration: BoxDecoration(