diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart index 164daf90..7e3fdf17 100644 --- a/lib/app/view/app.dart +++ b/lib/app/view/app.dart @@ -8,6 +8,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:pinball/l10n/l10n.dart'; +import 'package:pinball/landing/landing.dart'; class App extends StatelessWidget { const App({Key? key}) : super(key: key); @@ -15,6 +16,7 @@ class App extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( + title: 'I/O Pinball', theme: ThemeData( appBarTheme: const AppBarTheme(color: Color(0xFF13B9FF)), colorScheme: ColorScheme.fromSwatch( @@ -26,7 +28,7 @@ class App extends StatelessWidget { GlobalMaterialLocalizations.delegate, ], supportedLocales: AppLocalizations.supportedLocales, - home: Container(), + home: const LandingPage(), ); } } diff --git a/lib/game/game.dart b/lib/game/game.dart new file mode 100644 index 00000000..ec8e0824 --- /dev/null +++ b/lib/game/game.dart @@ -0,0 +1,2 @@ +export 'pinball_game.dart'; +export 'view/pinball_game_page.dart'; diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart new file mode 100644 index 00000000..306d03f0 --- /dev/null +++ b/lib/game/pinball_game.dart @@ -0,0 +1,3 @@ +import 'package:flame_forge2d/forge2d_game.dart'; + +class PinballGame extends Forge2DGame {} diff --git a/lib/game/view/pinball_game_page.dart b/lib/game/view/pinball_game_page.dart new file mode 100644 index 00000000..cfe8d5bc --- /dev/null +++ b/lib/game/view/pinball_game_page.dart @@ -0,0 +1,16 @@ +import 'package:flame/game.dart'; +import 'package:flutter/material.dart'; +import 'package:pinball/game/game.dart'; + +class PinballGamePage extends StatelessWidget { + const PinballGamePage({Key? key}) : super(key: key); + + static Route route() { + return MaterialPageRoute(builder: (_) => const PinballGamePage()); + } + + @override + Widget build(BuildContext context) { + return GameWidget(game: PinballGame()); + } +} diff --git a/lib/landing/landing.dart b/lib/landing/landing.dart new file mode 100644 index 00000000..b7da30c3 --- /dev/null +++ b/lib/landing/landing.dart @@ -0,0 +1 @@ +export 'view/landing_page.dart'; diff --git a/lib/landing/view/landing_page.dart b/lib/landing/view/landing_page.dart new file mode 100644 index 00000000..1e505e16 --- /dev/null +++ b/lib/landing/view/landing_page.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:pinball/game/game.dart'; + +class LandingPage extends StatelessWidget { + const LandingPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: TextButton( + onPressed: () => + Navigator.of(context).push(PinballGamePage.route()), + child: const Text('Start'), + ), + ), + ); + } +}