Browse Source

add: some assets and create level path

pull/26/head
AmirrezaChegini 4 days ago
parent
commit
82ff372d9c
  1. 1
      assets/animations/confetti.json
  2. 9268
      assets/animations/lights_purple.json
  3. 295
      lib/features/level/presentation/ui/widgets/level_path.dart
  4. 2
      pubspec.lock
  5. 2
      pubspec.yaml

1
assets/animations/confetti.json
File diff suppressed because it is too large
View File

9268
assets/animations/lights_purple.json
File diff suppressed because it is too large
View File

295
lib/features/level/presentation/ui/widgets/level_path.dart

@ -0,0 +1,295 @@
import 'package:flutter/material.dart';
import 'package:path_drawing/path_drawing.dart';
class LevelPath extends StatelessWidget {
const LevelPath({super.key});
@override
Widget build(BuildContext context) {
return CustomPaint(size: Size(361, 2233), painter: CurvedPathPainter());
}
}
class CurvedPathPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
// Scale factor to fit the design
final scaleX = size.width / 361;
final scaleY = size.height / 2233;
final paint = Paint()
..color = Colors.white
..strokeWidth = 3
..style = PaintingStyle.stroke
..strokeCap = StrokeCap.round;
// First path (bottom curve)
final path1 = Path();
path1.moveTo(86.9641 * scaleX, 2231.26 * scaleY);
path1.cubicTo(
195.179 * scaleX,
2177.98 * scaleY,
178.692 * scaleX,
2126.01 * scaleY,
178.692 * scaleX,
2126.01 * scaleY,
);
path1.cubicTo(
164.374 * scaleX,
2080.87 * scaleY,
102.793 * scaleX,
2100.22 * scaleY,
94.3613 * scaleX,
2069.15 * scaleY,
);
path1.cubicTo(
79.334 * scaleX,
2013.78 * scaleY,
112.538 * scaleX,
2035.55 * scaleY,
109.368 * scaleX,
1964.11 * scaleY,
);
path1.cubicTo(
107.037 * scaleX,
1911.59 * scaleY,
170.879 * scaleX,
1904.82 * scaleY,
206.38 * scaleX,
1866.04 * scaleY,
);
path1.cubicTo(
242.924 * scaleX,
1826.13 * scaleY,
297.122 * scaleX,
1847.48 * scaleY,
330.868 * scaleX,
1805.17 * scaleY,
);
path1.cubicTo(
369.124 * scaleX,
1757.21 * scaleY,
356.865 * scaleX,
1650.25 * scaleY,
356.865 * scaleX,
1650.25 * scaleY,
);
path1.cubicTo(
356.865 * scaleX,
1650.25 * scaleY,
327.352 * scaleX,
1579.89 * scaleY,
320.723 * scaleX,
1532.1 * scaleY,
);
path1.cubicTo(
313.484 * scaleX,
1479.91 * scaleY,
325.584 * scaleX,
1397.26 * scaleY,
325.584 * scaleX,
1397.26 * scaleY,
);
// Second path (top curve)
final path2 = Path();
path2.moveTo(140.464 * scaleX, 1.50636 * scaleY);
path2.cubicTo(
140.464 * scaleX,
1.50636 * scaleY,
139.141 * scaleX,
-0.0589981 * scaleY,
114.441 * scaleX,
45.9425 * scaleY,
);
path2.cubicTo(
91.5014 * scaleX,
88.6635 * scaleY,
57.6838 * scaleX,
106.774 * scaleY,
55.4723 * scaleX,
155.213 * scaleY,
);
path2.cubicTo(
52.7912 * scaleX,
213.94 * scaleY,
128.813 * scaleX,
286.676 * scaleY,
128.813 * scaleX,
286.676 * scaleY,
);
path2.cubicTo(
128.813 * scaleX,
286.676 * scaleY,
155.78 * scaleX,
337.75 * scaleY,
151.85 * scaleX,
372.064 * scaleY,
);
path2.cubicTo(
148.066 * scaleX,
405.109 * scaleY,
112.75 * scaleX,
447.729 * scaleY,
112.75 * scaleX,
447.729 * scaleY,
);
path2.cubicTo(
112.75 * scaleX,
447.729 * scaleY,
16.9303 * scaleX,
455.877 * scaleY,
6.0151 * scaleX,
501.202 * scaleY,
);
path2.cubicTo(
-1.31338 * scaleX,
531.634 * scaleY,
29.8983 * scaleX,
577.713 * scaleY,
29.8983 * scaleX,
577.713 * scaleY,
);
path2.cubicTo(
29.8983 * scaleX,
577.713 * scaleY,
-18.1423 * scaleX,
654.926 * scaleY,
10.665 * scaleX,
687.618 * scaleY,
);
path2.cubicTo(
34.3963 * scaleX,
714.549 * scaleY,
101.548 * scaleX,
701.356 * scaleY,
101.548 * scaleX,
701.356 * scaleY,
);
path2.cubicTo(
101.548 * scaleX,
701.356 * scaleY,
234.377 * scaleX,
670.297 * scaleY,
258.796 * scaleX,
727.564 * scaleY,
);
path2.cubicTo(
270.16 * scaleX,
754.214 * scaleY,
258.796 * scaleX,
801.75 * scaleY,
258.796 * scaleX,
801.75 * scaleY,
);
path2.cubicTo(
258.796 * scaleX,
801.75 * scaleY,
248.847 * scaleX,
848.935 * scaleY,
254.781 * scaleX,
878.261 * scaleY,
);
path2.cubicTo(
261.069 * scaleX,
909.339 * scaleY,
291.345 * scaleX,
950.756 * scaleY,
291.345 * scaleX,
950.756 * scaleY,
);
path2.cubicTo(
291.345 * scaleX,
950.756 * scaleY,
282.736 * scaleX,
1008.09 * scaleY,
258.796 * scaleX,
1032.97 * scaleY,
);
path2.cubicTo(
240.05 * scaleX,
1052.46 * scaleY,
198.137 * scaleX,
1066.37 * scaleY,
198.137 * scaleX,
1066.37 * scaleY,
);
path2.cubicTo(
198.137 * scaleX,
1066.37 * scaleY,
166.656 * scaleX,
1088.74 * scaleY,
143.819 * scaleX,
1097.44 * scaleY,
);
path2.cubicTo(
121.262 * scaleX,
1106.03 * scaleY,
83.3713 * scaleX,
1110.33 * scaleY,
83.3713 * scaleX,
1110.33 * scaleY,
);
path2.cubicTo(
83.3713 * scaleX,
1110.33 * scaleY,
32.7909 * scaleX,
1133.78 * scaleY,
25.8826 * scaleX,
1163.59 * scaleY,
);
path2.cubicTo(
18.5162 * scaleX,
1195.38 * scaleY,
59.4881 * scaleX,
1240.1 * scaleY,
59.4881 * scaleX,
1240.1 * scaleY,
);
path2.cubicTo(
59.4881 * scaleX,
1240.1 * scaleY,
110.19 * scaleX,
1264.23 * scaleY,
143.819 * scaleX,
1276.88 * scaleY,
);
path2.cubicTo(
172.99 * scaleX,
1287.85 * scaleY,
219.696 * scaleX,
1301.61 * scaleY,
219.696 * scaleX,
1301.61 * scaleY,
);
path2.cubicTo(
219.696 * scaleX,
1301.61 * scaleY,
288.856 * scaleX,
1304.54 * scaleY,
312.964 * scaleX,
1328.51 * scaleY,
);
path2.cubicTo(
330.039 * scaleX,
1345.48 * scaleY,
325.464 * scaleX,
1397.51 * scaleY,
325.464 * scaleX,
1397.51 * scaleY,
);
final dashArray = CircularIntervalList<double>(const [3.08, 13.1]);
final dashArray2 = CircularIntervalList<double>(const [3.08, 13.1]);
// Simply pass the Path objects directly to dashPath
final dashed = dashPath(path1, dashArray: dashArray);
final dashed2 = dashPath(path2, dashArray: dashArray2);
canvas.drawPath(dashed, paint);
canvas.drawPath(dashed2, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}

2
pubspec.lock

@ -486,7 +486,7 @@ packages:
source: hosted
version: "1.3.0"
lottie:
dependency: transitive
dependency: "direct main"
description:
name: lottie
sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95"

2
pubspec.yaml

@ -23,6 +23,7 @@ dependencies:
hive: ^2.2.3
intl: ^0.20.2
just_audio: ^0.10.5
lottie: ^3.3.2
path_drawing: ^1.0.1
path_provider: ^2.1.5
pretty_dio_logger: ^1.4.0
@ -45,6 +46,7 @@ flutter:
assets:
- assets/fonts/
- assets/images/
- assets/animations/
- path: assets/svg/
transformers:
- package: vector_graphics_compiler

Loading…
Cancel
Save