Цель приложения - создать небольшую игру, в которой игрок может перейти из положения сетки в другое перетаскивание.
Это виджеты, которые я использую до сих пор:
class Game extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Sub Page'),
backgroundColor: Colors.redAccent,
),
body: new GridView.count(
crossAxisCount: 5,
children: new List<Widget>.generate(20, (index) {
return new GridTile(
child: new Card(
color: Colors.blue.shade200,
child: new Center(
//child: new Text('tile $index'),
child: Player(index),
)
),
);
}),
),
);
}
}
class Player extends StatelessWidget{
int index = 0;
Player(int index){
this.index = index;
}
BoxDecoration _getBoxDecoration(){
if(this.index == 0){
return BoxDecoration(
// lighter gradient effect
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0x00000000),
Color(0x00000000),
],
),
);
} else {
return BoxDecoration(
// lighter gradient effect
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0x40068FFA),
Color(0x4089ED91),
],
),
);
}
}
@override
Widget build(BuildContext context) {
return Card(
elevation: 4.0,
child: Container(
decoration: _getBoxDecoration(),
// TODO: add child
),
);
}
}
И результат:
Игрок должен двигаться, начиная с первой позиции (индекс = 0), должен иметь возможность двигаться вниз или вправо. Я не знаю, как реализовать это, я должен реализовать это с помощью Drag & Drop или просто изменить цвет позиции сетки?
Игрок должен увидеть движение и получить некоторую обратную связь, когда движение закончится. Я не знаю, возможно ли реализовать это, только ловя движение и меняя цвет позиции сетки.