Перетаскиваемая пользовательская сетка Flutter - PullRequest
0 голосов
/ 22 апреля 2020

Цель приложения - создать небольшую игру, в которой игрок может перейти из положения сетки в другое перетаскивание.

Это виджеты, которые я использую до сих пор:

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
      ),
    );
  }
}

И результат:

enter image description here

Игрок должен двигаться, начиная с первой позиции (индекс = 0), должен иметь возможность двигаться вниз или вправо. Я не знаю, как реализовать это, я должен реализовать это с помощью Drag & Drop или просто изменить цвет позиции сетки?

Игрок должен увидеть движение и получить некоторую обратную связь, когда движение закончится. Я не знаю, возможно ли реализовать это, только ловя движение и меняя цвет позиции сетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...