Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • android/org.benoitharrault.puzzlegame
1 result
Show changes
Commits on Source (2)
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.4
app.versionCode=4
app.versionName=0.0.5
app.versionCode=5
import 'package:flutter/material.dart';
class Tile {
final Image image;
final double size;
final int currentCol;
final int currentRow;
final int originalCol;
final int originalRow;
Tile(
@required this.image,
@required this.size,
@required this.currentCol,
@required this.currentRow,
@required this.originalCol,
@required this.originalRow,
);
Container widget() {
return Container(
child: Image(
image: this.image.image,
width: this.size,
height: this.size,
fit: BoxFit.fill
)
);
}
}
......@@ -5,14 +5,15 @@ import 'package:flutter/services.dart' show rootBundle;
import 'package:image/image.dart' as imglib;
import 'package:provider/provider.dart';
import '../entities/tile.dart';
import '../provider/data.dart';
import '../utils/get_images_list.dart';
class Home extends StatelessWidget {
static const String id = 'home';
int _linesCount = 3;
int _columnsCount = 3;
int _linesCount = 4;
int _columnsCount = 4;
double _selectorImageSize = 200;
double _tipImageSize = 100;
......@@ -83,7 +84,7 @@ class Home extends StatelessWidget {
);
}
Future<List<Image>> splitImageInTiles(Data myProvider) async {
Future<List<Tile>> splitImageInTiles(Data myProvider) async {
String imageAsset = getImageAssetName(myProvider.image);
Uint8List imageData = (await rootBundle.load(imageAsset))
.buffer
......@@ -94,35 +95,31 @@ class Home extends StatelessWidget {
int width = (image.width / _linesCount).round();
int height = (image.height / _columnsCount).round();
List<imglib.Image> parts = List<imglib.Image>();
List<Tile> tiles = List<Tile>();
for (int i = 0; i < _linesCount; i++) {
for (int j = 0; j < _columnsCount; j++) {
parts.add(imglib.copyCrop(image, x, y, width, height));
tiles.add(
Tile(
Image.memory(
imglib.encodeJpg(
imglib.copyCrop(image, x, y, width, height)
)
),
_tileImageSize,
j, i,
j, i,
)
);
x += width;
}
x = 0;
y += height;
}
List<Image> tiles = List<Image>();
for (var img in parts) {
tiles.add(Image.memory(imglib.encodeJpg(img)));
}
return tiles;
}
Container _buildImageTileItem(Image tile) {
return Container(
child: Image(
image: tile.image,
width: _tileImageSize,
height: _tileImageSize,
fit: BoxFit.fill
)
);
}
Container _buildTilesetWidget(Data myProvider) {
List tiles = myProvider.tiles;
......@@ -139,22 +136,12 @@ class Home extends StatelessWidget {
width: 2,
),
children: [
TableRow(children: [
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
]),
TableRow(children: [
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
]),
TableRow(children: [
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
]),
],
for (var row = 0; row < _linesCount; row++)
TableRow(children: [
for (var col = 0; col < _columnsCount; col++)
Column(children: [tiles[tileIndex++].widget()]),
]),
]
);
return Container(
......