安卓(和引擎): Drawing with touch using particles

标签 android opengl-es drawing andengine particles

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

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

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

然后我尝试做一个递归函数,基本上从前一点到下一点将发射器的位置设置在它们之间的中间点,并对从前一点到中间部分的中间部分执行相同的操作,从中间部分到下一个(我不知道你是否理解我所做的......不知道如何用英语解释它),但该行仍然是frammented。

所以我认为,当您快速移动时,该应用程序“没有时间”在每个点移动发射器,这就是为什么会形成一条直线的原因……所以,您有什么想法吗?使其与 Art of Glow 一样高效?该应用程序只丢失了很少的输入,我不明白作者是如何做到这一点的...

最佳答案

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

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

关于安卓(和引擎): Drawing with touch using particles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12780128/

相关文章:

opengl-es - OpenGL ES 1.0 或 2.0

JPanel 上的 Java Path2D.Double 都画有 'tail'

cocoa - 在 NSView-drawRect : method? 中画线的首选/推荐方法是什么

android 如何使用 Retrofit 库发布 ByteArray?

android - 如何在android中使用SQLite数据库生成不同类型的报告?

android - glsl编程架构哪一部分是 "really"并行执行?

Android API 或分析图像中最常使用哪种颜色的东西?

android - 在Dagger2中,@Singleton注解的用途是什么?

android - 如何让gradle更快

ios - 将 AVFrame 转换为 CVPixelBufferRef 以在函数 CVOpenGLESTextureCacheCreateTextureFromImage 中使用