ficou feio

This commit is contained in:
2026-04-22 12:47:53 +01:00
parent bc93bb748f
commit e1d1babb07
6 changed files with 48 additions and 19 deletions

BIN
assets/assit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

BIN
assets/stl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB

BIN
assets/tov.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 KiB

View File

@@ -1,6 +1,3 @@
import 'package:flutter/material.dart';
import 'package:playmaker/classe/theme.dart';
import 'package:playmaker/controllers/placar_controller.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:playmaker/classe/theme.dart'; import 'package:playmaker/classe/theme.dart';
import 'package:playmaker/controllers/placar_controller.dart'; import 'package:playmaker/controllers/placar_controller.dart';
@@ -92,6 +89,11 @@ class ActionButtonsPanel extends StatelessWidget {
bool isRebBtn = label == "O" || label == "D"; bool isRebBtn = label == "O" || label == "D";
bool isBlkBtn = label == "BLK"; bool isBlkBtn = label == "BLK";
// Identificadores para as imagens
bool isStlBtn = label == "STL";
bool isAstBtn = label == "AST";
bool isTovBtn = label == "TOV";
if (isPointBtn) { if (isPointBtn) {
content = Stack( content = Stack(
alignment: Alignment.center, alignment: Alignment.center,
@@ -112,24 +114,24 @@ class ActionButtonsPanel extends StatelessWidget {
children: [ children: [
Center( Center(
child: SizedBox( child: SizedBox(
width: size * 0.80, width: size * 0.75,
height: size * 0.80, height: size * 0.75,
child: CustomPaint(painter: HoopIconPainter()), child: CustomPaint(painter: HoopIconPainter()),
), ),
), ),
Positioned( Positioned(
top: size * -0.05, // Mantido no topo conforme solicitado top: size * -0.05,
right: size * 0.05, right: size * 0.05,
child: Stack( child: Stack(
children: [ children: [
Text(label, style: TextStyle( Text(label, style: TextStyle(
fontSize: size * 0.48, // Tamanho aumentado conforme código anterior fontSize: size * 0.48,
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
foreground: Paint()..style = PaintingStyle.stroke..strokeWidth = size * 0.07..color = Colors.black, foreground: Paint()..style = PaintingStyle.stroke..strokeWidth = size * 0.07..color = Colors.black,
decoration: TextDecoration.none decoration: TextDecoration.none
)), )),
Text(label, style: TextStyle( Text(label, style: TextStyle(
fontSize: size * 0.48, // Tamanho aumentado conforme código anterior fontSize: size * 0.48,
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
color: Colors.white, color: Colors.white,
decoration: TextDecoration.none decoration: TextDecoration.none
@@ -154,7 +156,38 @@ class ActionButtonsPanel extends StatelessWidget {
), ),
], ],
); );
} else { }
// Botão de Roubo de Bola (Steal)
else if (isStlBtn) {
content = Center(
child: Image.asset(
'assets/stl.png',
width: size * 1,
),
);
}
// Botão de Assistência (Assist)
else if (isAstBtn) {
content = Center(
child: Image.asset(
'assets/assit.png',
width: size * 1,
),
);
}
// Botão de Turnover (Bola com X)
else if (isTovBtn) {
content = Center(
child: Image.asset(
'assets/tov.png',
width: size * 1,
),
);
}
else {
content = Text(label, style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: size * 0.35, decoration: TextDecoration.none)); content = Text(label, style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: size * 0.35, decoration: TextDecoration.none));
} }
@@ -164,7 +197,7 @@ class ActionButtonsPanel extends StatelessWidget {
children: [ children: [
Container( Container(
width: size, height: size, width: size, height: size,
decoration: (isPointBtn || isBlkBtn || isRebBtn) decoration: (isPointBtn || isBlkBtn || isRebBtn || isStlBtn || isAstBtn || isTovBtn)
? const BoxDecoration(color: Colors.transparent) ? const BoxDecoration(color: Colors.transparent)
: BoxDecoration(gradient: RadialGradient(colors: [color.withOpacity(0.7), color], radius: 0.8), shape: BoxShape.circle, boxShadow: [BoxShadow(color: Colors.black38, blurRadius: 6 * sf, offset: Offset(0, 3 * sf))]), : BoxDecoration(gradient: RadialGradient(colors: [color.withOpacity(0.7), color], radius: 0.8), shape: BoxShape.circle, boxShadow: [BoxShadow(color: Colors.black38, blurRadius: 6 * sf, offset: Offset(0, 3 * sf))]),
alignment: Alignment.center, alignment: Alignment.center,
@@ -176,9 +209,6 @@ class ActionButtonsPanel extends StatelessWidget {
} }
} }
// =====================================================================
// PAINTER DA CESTA (MAIOR E PRETO)
// =====================================================================
class HoopIconPainter extends CustomPainter { class HoopIconPainter extends CustomPainter {
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
@@ -192,7 +222,6 @@ class HoopIconPainter extends CustomPainter {
..strokeCap = StrokeCap.round ..strokeCap = StrokeCap.round
..strokeJoin = StrokeJoin.round; ..strokeJoin = StrokeJoin.round;
// 1. Tabela Grande
canvas.drawRRect( canvas.drawRRect(
RRect.fromRectAndRadius( RRect.fromRectAndRadius(
Rect.fromLTRB(w * 0.02, h * 0.02, w * 0.98, h * 0.70), Rect.fromLTRB(w * 0.02, h * 0.02, w * 0.98, h * 0.70),
@@ -201,13 +230,11 @@ class HoopIconPainter extends CustomPainter {
paint paint
); );
// 2. Quadrado do Alvo
canvas.drawRect( canvas.drawRect(
Rect.fromLTRB(w * 0.28, h * 0.30, w * 0.72, h * 0.70), Rect.fromLTRB(w * 0.28, h * 0.30, w * 0.72, h * 0.70),
paint paint
); );
// 3. Aro (Laranja)
final Paint rimPaint = Paint() final Paint rimPaint = Paint()
..color = Colors.orange ..color = Colors.orange
..style = PaintingStyle.stroke ..style = PaintingStyle.stroke
@@ -220,7 +247,6 @@ class HoopIconPainter extends CustomPainter {
rimPaint rimPaint
); );
// 4. Rede
final Paint netPaint = Paint() final Paint netPaint = Paint()
..color = Colors.black ..color = Colors.black
..style = PaintingStyle.stroke ..style = PaintingStyle.stroke
@@ -229,7 +255,7 @@ class HoopIconPainter extends CustomPainter {
canvas.drawLine(Offset(w * 0.25, h * 0.75), Offset(w * 0.40, h * 0.98), netPaint); canvas.drawLine(Offset(w * 0.25, h * 0.75), Offset(w * 0.40, h * 0.98), netPaint);
canvas.drawLine(Offset(w * 0.75, h * 0.75), Offset(w * 0.60, h * 0.98), netPaint); canvas.drawLine(Offset(w * 0.75, h * 0.75), Offset(w * 0.60, h * 0.98), netPaint);
canvas.drawLine(Offset(w * 0.40, h * 0.75), Offset(w * 0.30, h * 0.98), netPaint); canvas.drawLine(Offset(w * 0.40, h * 0.75), Offset(w * 0.30, h * 0.98), netPaint);
canvas.drawLine(Offset(w * 0.60, h * 0.75), Offset(w * 0.70, h * 0.98), netPaint); canvas.drawLine(Offset(w * 0.55, h * 0.75), Offset(w * 0.65, h * 0.98), netPaint);
} }
@override @override

View File

@@ -30,7 +30,7 @@ class BasketTrackHeader extends StatelessWidget {
child: Column( child: Column(
children: [ children: [
Text( Text(
'BasketTrack', 'PlayMaker',
style: TextStyle( style: TextStyle(
fontSize: 36 * context.sf, fontSize: 36 * context.sf,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,

View File

@@ -66,6 +66,9 @@ flutter:
- assets/playmaker-logo.png - assets/playmaker-logo.png
- assets/campo.png - assets/campo.png
- assets/playmaker-logos.png - assets/playmaker-logos.png
- assets/assit.png
- assets/tov.png
- assets/stl.png
fonts: fonts:
- family: playmaker - family: playmaker
fonts: fonts: