我目前正在努力学习颤抖,并尝试在颤动中制作一个tic tac toe游戏。我想要我的游戏,当我点击一块瓷砖时,圆圈和十字架从上面落下。我试图用Transform.Translate()
两次实现这个。像这样
GridTile(
child: Transform.translate(
child: Transform.translate(
child: Image.asset(
MultiPlayerGameLogic().imageProvider(i),
fit: BoxFit.scaleDown,
),
offset: Offset(0, -1000),
),
offset: Offset(0, 1000),
),
)
但这会立即发生,也看不到动画。我想设置外部Transform.translate()
的持续时间。但找不到任何办法这样做。
试试这个
AnimationController _controller;
@override
void initState() {
super.initState();
_controller = AnimationController(vsync: this, duration: Duration(milliseconds: 1000));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Title")),
body: AnimatedBuilder(
animation: _controller,
builder: (context, child) {
return GridTile(
child: Transform.translate(
child: Transform.translate(
child: Image.asset(
MultiPlayerGameLogic().imageProvider(i),
fit: BoxFit.scaleDown,
),
offset: Offset(0, -1000),
),
offset: Offset(0, 1000),
),
);
},
),
);
}
无论什么时候想要启动动画,只需致电
_controller.forward();