我正在与Libgdx合作并尝试制作烟花,随着像素的下降而留下痕迹。
每个render()
步骤删除一个Pixmap
对象,在其上绘制当前状态的烟花粒子,然后从该像素图创建纹理并在SpriteBatch上绘制,如下所示:
pixmap.setColor(0, 0, 0, 0);
pixmap.fill();
pixmap.setColor(fireworks.red, fireworks.green, fireworks.blue, fireworks.alpha)
for (int i=0; i<Constants.FIREWORKS_PARTICLES; i++){
pixmap.drawPixel(fireworks.x[i], fireworks.y[i]);
}
texture.draw(pixmap, 0, 0);
batch.draw(texture, ...);
是否有一种有效的方法可以在添加新帧之前从之前的像素图绘制中获取所有像素并降低其alpha值(如果它低于某个阈值 - 使其为0),那么它看起来就像一个慢慢消失烟花背后的踪迹?
glFramebufferTexture2DOES
获取整个屏幕缓冲区)pixmap.getPixels()
ByteBuffer(并且每隔4个字节更改一次),但它对我不起作用(猜猜不熟悉BytesBuffers使其打勾)非常感谢任何帮助(以及关于我选择绘制烟花的方式的一般想法)。