14

我的问题目前很难解决。

我应该和我的同事一起开发一个 Android 应用程序,它做同样的事情,但在 iOS 上。

在开发结束时,我们应该交付两个执行相同操作且看起来相似的应用程序(请放心,与强制在 Android 上使用的 iOS 指南线完全不同,反之亦然),以便获得相同且身临其境的体验。

提供的最重要的功能之一是一个漂亮的白色空圆圈动画,它在圆圈内发出雪状粒子。圆圈可以通过滚动或简单的弹跳/滑动动画来移动。

因此,想象一个带有白色边框和白色颗粒从白色薄膜上脱落的圆圈。所有这些粒子都被吸引到中心,并且它们的速度基础正在变化(但没有加速!)。最快的粒子应该在到达中心之前“死亡”。当然,可以通过设置寿命和速度轻松设置的东西。

我的伙伴,和我一样大三,正在使用iOS 的 CAEmitterLayer,她在一两天内获得的结果非常好,非常接近我们应该达到的效果。

在我这边,我真的很挣扎。和她一样,我在任何动画和 UI/UX 方面都没有任何经验。在 Android 上寻找粒子生成器/发射器时,我偶然发现了这个漂亮的库:https ://github.com/plattysoft/Leonids ,它似乎可以提供我正在寻找的东西。

但是使用这个库我有一些未解决的问题:

  1. 我不能或不知道我是否可以将发射器放在一个圆圈内;
  2. 我相信,如果发射器所连接的圆圈正在移动(滚动/动画),那么粒子很可能不会随圆圈移动;

正如我所说,我的 iOS 同事解决了这些问题。即使是移动部分:我们正在与我们的经理交谈,告诉使用“如果圆圈移动怎么办?” 她立即​​在我们面前尝试了它。我被吹走了...

她告诉我我应该寻找一种方法将我的粒子包含在一个容器中(有道理^^)并且我的圆形视图应该用图层剪辑,这样粒子就不会离开圆圈,尤其是在整个物体移动的情况下.

多亏了前面提到的 Android 库,这就是我所取得的成就:

  1. 我可以发射粒子,定义它们的形状、尺度/大小、速度和发射角度;
  2. 我可以将粒子发射器连接到视图。它将使用视图X&Y 坐标来发射粒子,但是像这里这样的基于 XML 的可绘制圆的问题在于它包含在基于正方形的视图中(带有 a和 a ),并且出于奇怪的原因,我的圆在上面绘制说基于平方的观点。heightwidth

我希望我能找到另一个图书馆,但如果当前的图书馆正在工作,为什么不呢?只是在外面试试我的运气^^

谢谢您的帮助 !

4

1 回答 1

1

Leonids 的图书馆作者提出了一个建议,可能会帮助您达到预期的效果:

来源

plattysoft 于 2016 年 9 月 19 日发表评论

有趣的是,目前不支持此功能,但您可以创建 fork 并调整库以 添加一个初始化程序,该初始化程序采用半径并以随机角度围绕半径生成粒子。

第二部分被中心吸引。那应该是一个修改器或者可能是一个初始化器,其中加速度取决于角度。

棘手,不直接支持,但可行。

于 2018-12-01T13:26:43.930 回答