Skip to content
Snippets Groups Projects
Commit 2b44d72c authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '10-add-sound' into 'master'

Resolve "Add sound"

Closes #10

See merge request !13
parents 1e77555d cf3ee8a7
No related branches found
No related tags found
1 merge request!13Resolve "Add sound"
Pipeline #4811 passed
Showing
with 151 additions and 4 deletions
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
Add audio description for member/color association.
Ajout de la description audio de la combinaison membre/couleur.
import 'package:easy_localization/easy_localization.dart';
import 'package:twister/models/twister_color.dart';
import 'package:twister/models/twister_member.dart';
......@@ -28,6 +29,14 @@ class Move {
return 'Move(' + this.toJson().toString() + ')';
}
String toSoundAsset() {
String base = 'voices/' + tr('lang_prefix') + '-';
String member = this.member.toString();
String color = this.color.toString();
return base + member + '-on-' + color + '.wav';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'color': this.color.toString(),
......
......@@ -20,6 +20,7 @@ class TwisterColor {
}
String toString() {
return this.value.toString();
List<String> parts = this.value.toString().split('.');
return parts[1];
}
}
......@@ -20,6 +20,8 @@ class TwisterMember {
}
String toString() {
return this.value.toString();
List<String> parts = this.value.toString().split('.');
final exp = RegExp('(?<=[a-z])[A-Z]');
return parts[1].replaceAllMapped(exp, (m) => '-${m.group(0)}').toLowerCase();
}
}
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:unicons/unicons.dart';
......@@ -14,15 +15,19 @@ class Game extends StatefulWidget {
}
class _GameState extends State<Game> {
Move move = Move.createNull();
final player = AudioPlayer();
Widget pickNewMove() {
return BlocBuilder<GameCubit, GameState>(builder: (BuildContext context, GameState state) {
return TextButton(
onPressed: () {
Move newMove = Move.pickRandom();
BlocProvider.of<GameCubit>(context).setValues(
move: Move.pickRandom(),
move: newMove,
);
player.play(AssetSource(newMove.toSoundAsset()));
},
child: Icon(UniconsSolid.refresh),
);
......
......@@ -9,6 +9,70 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.4.2"
async:
dependency: transitive
description:
name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.11.0"
audioplayers:
dependency: "direct main"
description:
name: audioplayers
sha256: c05c6147124cd63e725e861335a8b4d57300b80e6e92cea7c145c739223bbaef
url: "https://pub.dev"
source: hosted
version: "5.2.1"
audioplayers_android:
dependency: transitive
description:
name: audioplayers_android
sha256: b00e1a0e11365d88576320ec2d8c192bc21f1afb6c0e5995d1c57ae63156acb5
url: "https://pub.dev"
source: hosted
version: "4.0.3"
audioplayers_darwin:
dependency: transitive
description:
name: audioplayers_darwin
sha256: "3034e99a6df8d101da0f5082dcca0a2a99db62ab1d4ddb3277bed3f6f81afe08"
url: "https://pub.dev"
source: hosted
version: "5.0.2"
audioplayers_linux:
dependency: transitive
description:
name: audioplayers_linux
sha256: "60787e73fefc4d2e0b9c02c69885402177e818e4e27ef087074cf27c02246c9e"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
audioplayers_platform_interface:
dependency: transitive
description:
name: audioplayers_platform_interface
sha256: "365c547f1bb9e77d94dd1687903a668d8f7ac3409e48e6e6a3668a1ac2982adb"
url: "https://pub.dev"
source: hosted
version: "6.1.0"
audioplayers_web:
dependency: transitive
description:
name: audioplayers_web
sha256: "22cd0173e54d92bd9b2c80b1204eb1eb159ece87475ab58c9788a70ec43c2a62"
url: "https://pub.dev"
source: hosted
version: "4.1.0"
audioplayers_windows:
dependency: transitive
description:
name: audioplayers_windows
sha256: "9536812c9103563644ada2ef45ae523806b0745f7a78e89d1b5fb1951de90e1a"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
bloc:
dependency: transitive
description:
......@@ -120,6 +184,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.2.3"
http:
dependency: transitive
description:
name: http
sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139
url: "https://pub.dev"
source: hosted
version: "1.1.2"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
hydrated_bloc:
dependency: "direct main"
description:
......@@ -136,6 +216,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.18.1"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
material_color_utilities:
dependency: transitive
description:
......@@ -301,6 +389,30 @@ packages:
description: flutter
source: sdk
version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted
version: "1.10.0"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
synchronized:
dependency: transitive
description:
......@@ -309,6 +421,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.0+1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
typed_data:
dependency: transitive
description:
......@@ -325,6 +445,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
uuid:
dependency: transitive
description:
name: uuid
sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f"
url: "https://pub.dev"
source: hosted
version: "4.2.2"
vector_math:
dependency: transitive
description:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment