【问题标题】:Android (AndEngine): Drawing with touch using particlesAndroid(AndEngine):使用粒子进行触摸绘图
【发布时间】:2012-10-08 10:45:30
【问题描述】:

在我的应用程序中,我正在实现一个涉及粒子的绘图功能......基本上它需要像 Art of Glow 一样工作(这个应用程序在这里:http://www.youtube.com/watch?v=ZIZpw1VslIk)。

我所做的是:创建粒子系统和发射器(Point 类型);在每个触摸事件中,我将发射器移动到按下的位置,这样粒子看起来就像是在跟随手指...

如果我画得很慢,效果很好,但如果我画得更快,比如画一条直线,这条线就会被框住。

然后我尝试做一个 recusive 函数,基本上从前一个点到下一个点将发射器的位置设置在它们之间的中间点,并对从前一个点到中间部分的中间部分执行相同的操作,并且中段到下段(不知道你看懂我做的……不知道用英文怎么解释),但还是会被框住。

所以我认为应用程序,当你快速移动时,“没有时间”在每个点移动发射器,这就是为什么会形成一条直线......那么,你有什么想法吗?让它像发光的艺术一样高效?那个应用只丢失了很少的输入,我不明白作者是怎么做到的......

【问题讨论】:

    标签: android opengl-es drawing andengine particles


    【解决方案1】:

    当您获得触摸输入时,您是否仅使用当前位置?看起来您尝试制作一个 tweener(用于生成中间帧的东西),但 Android 可以为您提供更多输入以实现快速移动。查看the docs,尤其是“批处理”部分。

    基本上,您可以使用geHistoricalX/YgetHistoricalEventTime 来填补您的缺失点。如果这还不够完美,那么结合你当前的方法来做应该让你尽可能接近。

    【讨论】:

    • 感谢您的回复!是的,我也在这样做(对不起,我忘了说!)但它并没有改变一点。就像我说的那样,这可能是因为它不能快速移动发射器……所以昨天我尝试了另一件事;我制作了另外两个粒子系统,连接到另外两个发射器;我所做的是在获得触摸输入时循环它们,以便在 X 时移动第一个;在 Y 时刻是第二个,在 Z 时刻是第三个,依此类推;这样每个发射器都有时间在场景中实际展示自己
    • 这样做行得通...好吧,因为它仍然会丢失一些输入...现在总比没有好,但可能有更好的方法我还不知道...
    【解决方案2】:

    https://stackoverflow.com/a/21724810/472336

    检查这个...这适用于大多数仍需要改进的场景

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多