-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8a80bd6
commit 063cff6
Showing
72 changed files
with
389 additions
and
1,487 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
import 'package:flutter/material.dart'; | ||
|
||
class DicePaint extends CustomPainter { | ||
int _number; | ||
|
||
DicePaint(this._number); | ||
|
||
@override | ||
void paint(Canvas canvas, Size size) { | ||
canvas.drawRRect( | ||
RRect.fromRectAndRadius( | ||
Rect.fromLTWH(0, 0, size.width, size.height), Radius.circular(5)), | ||
Paint() | ||
..color = Colors.white | ||
..style = PaintingStyle.stroke | ||
..strokeWidth = 5); | ||
|
||
var dotPaint = Paint() | ||
..color = Colors.white | ||
..style = PaintingStyle.fill; | ||
|
||
var centerComponent = size.width / 2; | ||
var semiCenterComponent = size.width / 3.5; | ||
var semiComponent = size.width - size.width / 3.5; | ||
|
||
switch (_number) { | ||
case 1: | ||
canvas.drawCircle( | ||
Offset(centerComponent, centerComponent), size.width / 8, dotPaint); | ||
break; | ||
case 2: | ||
var radius = size.width / 10; | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiComponent, semiComponent), radius, dotPaint); | ||
break; | ||
case 3: | ||
var radius = size.width / 12; | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(centerComponent, centerComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiComponent, semiComponent), radius, dotPaint); | ||
break; | ||
case 4: | ||
var radius = size.width / 10; | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiComponent, semiComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiComponent), radius, dotPaint); | ||
break; | ||
case 5: | ||
var radius = size.width / 12; | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle(Offset(semiComponent, semiComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(centerComponent, centerComponent), radius, dotPaint); | ||
break; | ||
case 6: | ||
var radius = size.width / 15; | ||
canvas.drawCircle( | ||
Offset(semiComponent, centerComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, centerComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiComponent, semiCenterComponent), radius, dotPaint); | ||
canvas.drawCircle(Offset(semiComponent, semiComponent), radius, dotPaint); | ||
canvas.drawCircle( | ||
Offset(semiCenterComponent, semiComponent), radius, dotPaint); | ||
break; | ||
default: | ||
} | ||
} | ||
|
||
@override | ||
bool shouldRepaint(CustomPainter oldDelegate) => true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import 'package:flutter/material.dart'; | ||
|
||
class DiceBasePainter extends CustomPainter { | ||
final double _radius; | ||
|
||
DiceBasePainter(this._radius); | ||
|
||
@override | ||
void paint(Canvas canvas, Size size) { | ||
var center = Offset(size.width / 2, size.height / 2); | ||
|
||
canvas.drawCircle( | ||
center, | ||
_radius, | ||
Paint() | ||
..color = Colors.orange | ||
..style = PaintingStyle.stroke | ||
..strokeWidth = 10); | ||
|
||
canvas.drawCircle( | ||
center, | ||
_radius, | ||
Paint() | ||
..color = Colors.orangeAccent | ||
..style = PaintingStyle.fill); | ||
} | ||
|
||
@override | ||
bool shouldRepaint(CustomPainter oldDelegate) => true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import 'dart:math'; | ||
|
||
import 'package:flutter/material.dart'; | ||
|
||
class DiceNotifier extends ChangeNotifier { | ||
bool _isRolled = false; | ||
int _output = 1; | ||
|
||
get isRolled => _isRolled; | ||
get output => _output; | ||
|
||
rollDice() async { | ||
_isRolled = false; | ||
var rollCounter = 0; | ||
|
||
do { | ||
_generateOutputAndNotify(); | ||
await Future.delayed(Duration(milliseconds: 100)); | ||
rollCounter++; | ||
} while (rollCounter != 5); | ||
|
||
_isRolled = true; | ||
_generateOutputAndNotify(); | ||
} | ||
|
||
_generateOutputAndNotify() { | ||
_output = 1 + Random().nextInt(6); | ||
notifyListeners(); | ||
} | ||
} |
Oops, something went wrong.