使用颤动/飞镖翻转和摇动瓷砖动画?

时间:2018-04-02 10:10:53

标签: dart flutter

https://github.com/chimple/maui/blob/master/lib/games/memory.dart

我正在尝试使用Flutter / Dart实现MemoryMatching游戏。 整个游戏逻辑已编码Up ..only动画正在等待 当用户点击任何随机磁贴时,应该发生瓦片翻转,并且在尝试匹配不匹配的磁贴时,应该发生摇动动画并且它们应该再次翻转。These is how initial look of the game

1 个答案:

答案 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描述了一种翻转动画的简单解决方案