El Impostor v0.1 — app Flutter completa
Juego de deducción social para 3-20 jugadores. Modo un solo móvil completamente funcional. 1000 palabras en 10 categorías. Notas privadas, votación, adivinanza, revancha. Material 3 dark theme. Package: es.freetimelab.elimpostor
This commit is contained in:
72
lib/main.dart
Normal file
72
lib/main.dart
Normal file
@@ -0,0 +1,72 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'estado/estado_juego.dart';
|
||||
import 'tema/tema_app.dart';
|
||||
import 'pantallas/pantalla_principal.dart';
|
||||
|
||||
void main() {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||
SystemChrome.setSystemUIOverlayStyle(
|
||||
const SystemUiOverlayStyle(
|
||||
statusBarColor: Colors.transparent,
|
||||
statusBarIconBrightness: Brightness.light,
|
||||
systemNavigationBarColor: TemaApp.colorFondo,
|
||||
),
|
||||
);
|
||||
runApp(const ElImpostorApp());
|
||||
}
|
||||
|
||||
class ElImpostorApp extends StatelessWidget {
|
||||
const ElImpostorApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ChangeNotifierProvider(
|
||||
create: (_) => EstadoJuego()..cargarBanco(),
|
||||
child: MaterialApp(
|
||||
title: 'El Impostor',
|
||||
theme: TemaApp.obtenerTema(),
|
||||
debugShowCheckedModeBanner: false,
|
||||
home: const PantallaCarga(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class PantallaCarga extends StatelessWidget {
|
||||
const PantallaCarga({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final estado = context.watch<EstadoJuego>();
|
||||
|
||||
if (estado.cargando || estado.banco == null) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
const Text('🎭', style: TextStyle(fontSize: 72)),
|
||||
const SizedBox(height: 24),
|
||||
Text(
|
||||
'El Impostor',
|
||||
style: Theme.of(context).textTheme.headlineLarge,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
const CircularProgressIndicator(color: TemaApp.colorAcento),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
'Cargando palabras...',
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return const PantallaPrincipal();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user