diff options
Diffstat (limited to 'lib/level.dart')
-rw-r--r-- | lib/level.dart | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/lib/level.dart b/lib/level.dart deleted file mode 100644 index e35325a..0000000 --- a/lib/level.dart +++ /dev/null @@ -1,112 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:audioplayers/audioplayers.dart'; - -class Level extends StatefulWidget { - const Level({super.key, required this.stepmaniaFolderPath}); - final String stepmaniaFolderPath; - - @override - State<Level> createState() => _LevelState(); -} - -class _LevelState extends State<Level> { - final _player = AudioPlayer(); - bool _isPlaying = true; - - @override - Widget build(BuildContext context) { - String audioPath = Directory(widget.stepmaniaFolderPath) - .listSync() - .firstWhere((entity) => entity.path.endsWith('.ogg'), - orElse: () => File('')) - .path; - _player.play(DeviceFileSource(audioPath)); - return Scaffold( - appBar: AppBar( - leading: IconButton( - icon: Icon(_isPlaying ? Icons.pause : Icons.play_arrow), - onPressed: () => { - if (_isPlaying) - { - _player.pause(), - setState(() { - _isPlaying = false; - }) - } - else - { - _player.resume(), - setState(() { - _isPlaying = true; - }) - }, - }, - ), - 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)), - ), - ), - ])); - } - - @override - void dispose() { - _player.dispose(); - super.dispose(); - } -} - -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), - ); - } -} |