私は現在、パーティクルファウンテンが火山の背景(テクスチャクワッド)の上に重なるランダムなパーティクルを噴出させようとしています。
火山の背景があり、パーティクルは onDrawFrame 内にステートメントを描画します
public void onDrawFrame(GL10 gl)
{
// Set the clear colour to red and clear the screen
gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// Enable the vertex array client state
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
background.draw(gl);
// Draw then update the position of all particles
for (VolcanoParticle p : particleArray)
{
p.draw(gl);
p.update();
}
//background.draw(gl);
// Disable the vertex array client state before leaving
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
}
}
「background.draw(gl);」VolcanoBackground.java のクラスを使用し、p.draw(gl); を使用することを意味します。VolcanoParticle.java を使用するためのものです。しかし、何らかの理由で、VolcanoParticle.draw も background.draw に影響を与えているため、背景にもパーティクルと同じ動きと色の変化/重力/動きがあります。
修正方法に関するアイデアはありますか?
また、background.draw を使用すると、粒子の上に黒いシュラウドがあるかのように、粒子が非常に見にくくなります。このアルファ レイヤーなどを削除する方法や、背景を強制的に粒子の背後に配置する方法はありますか?