0

私は現在、パーティクルファウンテンが火山の背景(テクスチャクワッド)の上に重なるランダムなパーティクルを噴出させようとしています。

火山の背景があり、パーティクルは 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 を使用すると、粒子の上に黒いシュラウドがあるかのように、粒子が非常に見にくくなります。このアルファ レイヤーなどを削除する方法や、背景を強制的に粒子の背後に配置する方法はありますか?

4

1 に答える 1