123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import 'package:flutter/material.dart';
- import 'package:tetris/material/briks.dart';
- import 'package:tetris/material/images.dart';
- import 'package:tetris/gamer/gamer.dart';
- const _PLAYER_PANEL_PADDING = 6;
- Size getBrikSizeForScreenWidth(double width) {
- return Size.square((width - _PLAYER_PANEL_PADDING) / GAME_PAD_MATRIX_W);
- }
- ///the matrix of player content
- class PlayerPanel extends StatelessWidget {
- //the size of player panel
- final Size size;
- PlayerPanel({Key key, @required double width})
- : assert(width != null && width != 0),
- size = Size(width, width * 2),
- super(key: key);
- @override
- Widget build(BuildContext context) {
- debugPrint("size : $size");
- return SizedBox.fromSize(
- size: size,
- child: Container(
- padding: EdgeInsets.all(2),
- decoration: BoxDecoration(
- border: Border.all(color: Colors.black),
- ),
- child: Stack(
- children: <Widget>[
- _PlayerPad(),
- _GameUninitialized(),
- ],
- ),
- ),
- );
- }
- }
- class _PlayerPad extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return Column(
- children: GameState.of(context).data.map((list) {
- return Row(
- children: list.map((b) {
- return b == 1
- ? const Brik.normal()
- : b == 2 ? const Brik.highlight() : const Brik.empty();
- }).toList(),
- );
- }).toList(),
- );
- }
- }
- class _GameUninitialized extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- if (GameState.of(context).states == GameStates.none) {
- return Center(
- child: Column(
- mainAxisSize: MainAxisSize.min,
- children: <Widget>[
- IconDragon(animate: true),
- SizedBox(height: 16),
- Text(
- "tetrix",
- style: TextStyle(fontSize: 20),
- ),
- ],
- ),
- );
- } else {
- return Container();
- }
- }
- }
|