https://github.com/chimple/maui/blob/master/lib/games/memory.dart
我正在尝试使用Flutter / Dart实现MemoryMatching游戏。 整个游戏逻辑已编码Up ..only动画正在等待 当用户点击任何随机磁贴时,应该发生瓦片翻转,并且在尝试匹配不匹配的磁贴时,应该发生摇动动画并且它们应该再次翻转。These is how initial look of the game
答案 0 :(得分:2)
this页面上有一个示例,说明如何制作自定义的振动曲线。
它还详细介绍了如何使用曲线创建动画。
编辑:实际上,我尝试过此操作,示例曲线导致抖动错误。 相反,您可以做的是使用这样的转换;
/// create and animation controller in your init state;
_controller = new AnimationController(
vsync: this,
duration: const Duration(milliseconds: 1000),
)..addListener(()=>setState((){}));
...
///wrap your layout in a transform;
return Transform(
transform: Matrix4.translation(getTranslation()),
child:
/*your layout widget here*/,
);
///Then you can get a shake type motion like so;
Vector3 getTranslation() {
double progress = _controller.value;
double offset = sin(progress * pi * 2);
return Vector3(offset, 0.0, 0.0);
}
然后,一旦您在“动画”控制器上进行呼叫,您将获得不错的震动效果。要获得更明显的抖动,请将偏移量乘以一个常数。为了更快地晃动,请将2.0更改为更高的值。
公认的答案here描述了一种翻转动画的简单解决方案