Skip to content

Commit

Permalink
sound effects
Browse files Browse the repository at this point in the history
  • Loading branch information
Datlyfe committed Jul 8, 2019
1 parent 35c0a14 commit 0d14584
Show file tree
Hide file tree
Showing 10 changed files with 93 additions and 0 deletions.
Binary file added assets/click.mp3
Binary file not shown.
Binary file added assets/o.mp3
Binary file not shown.
Binary file added assets/x.mp3
Binary file not shown.
4 changes: 4 additions & 0 deletions lib/pages/pick.dart
Expand Up @@ -5,6 +5,7 @@ import 'package:tic_tac/components/o.dart';
import 'package:tic_tac/components/x.dart';
import 'package:tic_tac/services/board.dart';
import 'package:tic_tac/services/provider.dart';
import 'package:tic_tac/services/sound.dart';
import 'package:tic_tac/theme/theme.dart';

import 'game.dart';
Expand All @@ -15,6 +16,8 @@ class PickPage extends StatefulWidget {

class _PickPageState extends State<PickPage> {
final boardService = locator<BoardService>();
final soundService = locator<SoundService>();


String groupValue = 'X';
void setGroupvalue(value) {
Expand Down Expand Up @@ -104,6 +107,7 @@ class _PickPageState extends State<PickPage> {
boardService.player$.add("X");
boardService.botMove();
}
soundService.playClickSound();
Navigator.push(
context,
CupertinoPageRoute(
Expand Down
5 changes: 5 additions & 0 deletions lib/pages/start.dart
Expand Up @@ -6,10 +6,12 @@ import 'package:tic_tac/pages/game.dart';
import 'package:tic_tac/pages/pick.dart';
import 'package:tic_tac/services/board.dart';
import 'package:tic_tac/services/provider.dart';
import 'package:tic_tac/services/sound.dart';
import 'package:tic_tac/theme/theme.dart';

class StartPage extends StatelessWidget {
final boardService = locator<BoardService>();
final soundService = locator<SoundService>();

StartPage({Key key}) : super(key: key);

Expand Down Expand Up @@ -60,6 +62,8 @@ class StartPage extends StatelessWidget {
Btn(
onTap: () {
boardService.gameMode$.add(GameMode.Solo);
soundService.playClickSound();

Navigator.push(
context,
CupertinoPageRoute(
Expand All @@ -83,6 +87,7 @@ class StartPage extends StatelessWidget {
Btn(
onTap: () {
boardService.gameMode$.add(GameMode.Multi);
soundService.playClickSound();
Navigator.push(
context,
CupertinoPageRoute(
Expand Down
14 changes: 14 additions & 0 deletions lib/services/board.dart
@@ -1,6 +1,11 @@
import 'package:rxdart/rxdart.dart';
import 'dart:math' as math;

import 'package:tic_tac/services/provider.dart';
import 'package:tic_tac/services/sound.dart';

final soundService = locator<SoundService>();

enum BoardState { Done, Play }
enum GameMode { Solo, Multi }

Expand Down Expand Up @@ -31,6 +36,7 @@ class BoardService {
List<List<String>> currentBoard = _board$.value;

currentBoard[i][j] = player;
_playMoveSound(player);
_board$.add(currentBoard);
switchPlayer(player);

Expand Down Expand Up @@ -87,6 +93,14 @@ class BoardService {
}
}

_playMoveSound(player) {
if (player == "X") {
soundService.playXSound();
} else {
soundService.playOSound();
}
}

bool _checkWinner(int x, int y) {
var currentBoard = _board$.value;

Expand Down
3 changes: 3 additions & 0 deletions lib/services/provider.dart
@@ -1,8 +1,11 @@
import 'package:get_it/get_it.dart';
import 'package:tic_tac/services/board.dart';
import 'package:tic_tac/services/sound.dart';

GetIt locator = new GetIt();

void setupLocator() {
locator.registerSingleton(BoardService());
locator.registerSingleton(SoundService());

}
25 changes: 25 additions & 0 deletions lib/services/sound.dart
@@ -0,0 +1,25 @@
import 'package:audioplayers/audio_cache.dart';
import 'package:audioplayers/audioplayers.dart';

class SoundService {
AudioPlayer _fixedPlayer;
AudioCache _player;

SoundService() {
_fixedPlayer = AudioPlayer(mode: PlayerMode.LOW_LATENCY);
_player = AudioCache(fixedPlayer: _fixedPlayer);
_player.loadAll(['x.mp3', 'o.mp3', "click.mp3"]);
}

playXSound() {
_player.play("x.mp3");
}

playOSound() {
_player.play("o.mp3");
}

playClickSound() {
_player.play("click.mp3");
}
}
36 changes: 36 additions & 0 deletions pubspec.lock
Expand Up @@ -8,6 +8,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
audioplayers:
dependency: "direct main"
description:
name: audioplayers
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.0"
boolean_selector:
dependency: transitive
description:
Expand All @@ -29,6 +36,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
cupertino_icons:
dependency: "direct main"
description:
Expand Down Expand Up @@ -74,6 +95,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.2"
path_provider:
dependency: transitive
description:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
pedantic:
dependency: transitive
description:
Expand Down Expand Up @@ -163,6 +191,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
uuid:
dependency: transitive
description:
name: uuid
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
vector_math:
dependency: transitive
description:
Expand All @@ -172,3 +207,4 @@ packages:
version: "2.0.8"
sdks:
dart: ">=2.2.0 <3.0.0"
flutter: ">=0.1.4 <2.0.0"
6 changes: 6 additions & 0 deletions pubspec.yaml
Expand Up @@ -14,6 +14,7 @@ dependencies:
rxdart: ^0.22.0
get_it: ^1.0.3+2
rflutter_alert: ^1.0.3
audioplayers: ^0.13.0

dev_dependencies:
flutter_test:
Expand All @@ -22,6 +23,11 @@ dev_dependencies:
flutter:
uses-material-design: true


assets:
- assets/


fonts:
- family: DancingScript
fonts:
Expand Down

0 comments on commit 0d14584

Please sign in to comment.