feat: level layout

This commit is contained in:
Orangerot 2024-12-22 17:41:14 +01:00
parent c979904f95
commit 9aaf00e627
2 changed files with 67 additions and 4 deletions

61
lib/level.dart Normal file
View file

@ -0,0 +1,61 @@
import 'package:flutter/material.dart';
class Level extends StatelessWidget {
const Level({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: Icon(Icons.pause),
title: Text('Level 1'),
actions: [
IconButton(
icon: Icon(Icons.close),
onPressed: () => Navigator.pop(context))
],
),
body: Stack(children: [
Arrow( position: -100.0,),
Arrow( position: 00.0,),
Arrow( position: 100.0,),
Arrow( position: 200.0,),
Positioned(
top: 50,
width: MediaQuery.of(context).size.width,
left: 0,
child: Text(
"Great!",
textScaler: TextScaler.linear(4),
textAlign: TextAlign.center,
),
),
Positioned(
left: MediaQuery.of(context).size.width / 2 - 50,
bottom: 50,
child: Container(
width: 100,
height: 100,
decoration: BoxDecoration(
shape: BoxShape.circle,
// color: Colors.blue,
border: Border.all(color: Colors.black, width: 10)),
),
),
]));
}
}
class Arrow extends StatelessWidget {
final double position;
const Arrow({super.key, required this.position});
@override
Widget build(BuildContext context) {
return Positioned(
left: MediaQuery.of(context).size.width / 2 - 25, // Center the arrow
top: position,
child: Icon(size: 100, Icons.arrow_forward),
);
}
}

View file

@ -1,5 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'level.dart';
class LevelSelection extends StatelessWidget { class LevelSelection extends StatelessWidget {
final List<String> _musicList = [ final List<String> _musicList = [
"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3", "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",
@ -26,13 +28,13 @@ class LevelSelection extends StatelessWidget {
trailing: Icon(Icons.play_arrow), trailing: Icon(Icons.play_arrow),
title: Text('Track ${index + 1}'), title: Text('Track ${index + 1}'),
subtitle: Text('3:45'), subtitle: Text('3:45'),
onTap: () => Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) => Level())),
); );
}, },
), ),
floatingActionButton: FloatingActionButton( floatingActionButton:
onPressed: () => {}, FloatingActionButton(onPressed: () => {}, child: Icon(Icons.add)),
child: Icon(Icons.add)
),
); );
} }
} }