Skip to content

Commit

Permalink
Merge pull request emilbaehr#1 from taoong/master
Browse files Browse the repository at this point in the history
Add gridview and categories to level selection.
  • Loading branch information
taoong authored Jun 5, 2022
2 parents 15a1a5b + bd3aea7 commit 384e211
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 28 deletions.
101 changes: 73 additions & 28 deletions lib/src/level_selection/level_selection_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,43 +20,88 @@ class LevelSelectionScreen extends StatelessWidget {
Widget build(BuildContext context) {
final palette = context.watch<Palette>();
final playerProgress = context.watch<PlayerProgress>();
final categories = [
"Cats",
"Dogs",
"Fruit",
"Babies",
"Sports",
"Nature",
"Anime",
"People",
"Drugs",
"Alcohol",
"Sex",
"Violence",
"Nudity"
];

return Scaffold(
backgroundColor: palette.backgroundLevelSelection,
body: ResponsiveScreen(
squarishMainArea: Column(
children: [
const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: Text(
'Select level',
style:
TextStyle(fontFamily: 'Permanent Marker', fontSize: 30),
),
),
),
const SizedBox(height: 50),
Padding(
padding: EdgeInsets.all(16),
child: SizedBox(
height: 20,
child: ListView(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
children: categories
.map((i) => new Text(i.toString()))
.toList()),
)),
Expanded(
child: ListView(
children: [
for (final level in gameLevels)
ListTile(
enabled: playerProgress.highestLevelReached >=
level.number - 1,
onTap: () {
final audioController = context.read<AudioController>();
audioController.playSfx(SfxType.buttonTap);
child: SizedBox(
height: 200.0,
child: GridView.builder(
gridDelegate:
const SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200,
childAspectRatio: 1 / 1,
crossAxisSpacing: 20,
mainAxisSpacing: 20),
itemCount: gameLevels.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
final audioController =
context.read<AudioController>();
audioController.playSfx(SfxType.buttonTap);

GoRouter.of(context).go(
'/play/session/${gameLevels[index].number}');
},
child: Container(
alignment: Alignment.center,
child: Text(gameLevels[index].number.toString()),
decoration: BoxDecoration(
color: Colors.amber,
borderRadius: BorderRadius.circular(15)),
));
}),

// child: ListView(
// children: [
// for (final level in gameLevels)
// ListTile(
// enabled: playerProgress.highestLevelReached >=
// level.number - 1,
// onTap: () {
// final audioController = context.read<AudioController>();
// audioController.playSfx(SfxType.buttonTap);

GoRouter.of(context)
.go('/play/session/${level.number}');
},
leading: Text(level.number.toString()),
title: Text('Level #${level.number}'),
)
],
// GoRouter.of(context)
// .go('/play/session/${level.number}');
// },
// leading: Text(level.number.toString()),
// title: Text('Level #${level.number}'),
// )
// ],
// ),
),
),
)
],
),
rectangularMenuArea: ElevatedButton(
Expand Down
24 changes: 24 additions & 0 deletions lib/src/level_selection/levels.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,30 @@ const gameLevels = [
achievementIdIOS: 'finished',
achievementIdAndroid: 'CdfIhE96aspNWLGSQg',
),
GameLevel(
number: 4,
difficulty: 100,
),
GameLevel(
number: 5,
difficulty: 100,
),
GameLevel(
number: 6,
difficulty: 100,
),
GameLevel(
number: 7,
difficulty: 100,
),
GameLevel(
number: 8,
difficulty: 100,
),
GameLevel(
number: 9,
difficulty: 100,
),
];

class GameLevel {
Expand Down

0 comments on commit 384e211

Please sign in to comment.