在我的应用程序中,我使用的是openGL ES。 我想在屏幕上显示两个图像。第一个用作背景音(PNG格式,32位,1280 * 800),第二个用作前景(PNG格式,32位,64 * 512)。
我可以在屏幕上显示两个图像,但我不知道为什么前景图像的颜色会发生变化!这个问题的图片是: 同时,手的原始颜色是棕色。在下图中我禁用了背景图像,因此我们只看到图像中原始颜色的手。
请指导我有什么问题以及颜色变化的原因? 非常感谢
========== 的更新
代码的某些部分:
@Override
public void onDrawFrame(GL10 gl) {
try {
Thread.sleep(ATEngine.GAME_THREAD_FPS_SLEEP);
} catch (InterruptedException e) {
e.printStackTrace();
}
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
setBackground(gl);
setHand(gl);
//All other game drawing will be called here
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE);
}
和setHand方法是:
private void setHand(GL10 gl){
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glPushMatrix();
gl.glScalef(.1f, .7f, 1f);
gl.glTranslatef(4.5f, 0f, 0f);
gl.glMatrixMode(GL10.GL_TEXTURE);
gl.glLoadIdentity();
gl.glTranslatef( 0.0f, 0.0f, 0.0f);
hand.draw(gl);
gl.glPopMatrix();
gl.glLoadIdentity();
}