2012-11-02 153 views
3

我正在用libGDX框架爲Android開發遊戲。 我有三個圖像 - 背景,前景和麪具。下面是渲染代碼使用口罩,使背景圖像部分的前景圖像上可見:SpriteBatch.setBlendFunction()對Android沒有影響

Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT); 
batch.enableBlending(); 
batch.begin(); 
batch.setBlendFunction(<params1>); 
batch.draw(bgTex, bgTexX, bgTexY, bgTexW, bgTexH); 
batch.setBlendFunction(<params2>); 
batch.draw(mask, maskX, maskY, maskW, maskH); 
batch.setBlendFunction(<params3>); 
batch.draw(fgTex, fgTexX, fgTexY, fgTexW, fgTexH); 
batch.end(); 

它運作良好,在桌面上(Ubuntu的12.04),但它並沒有任何Android手機/平板電腦我試圖在工作(他們都支持Opengl ES 2.0)。 在Android設備上混合會出現什麼問題?

回答

0

在你的Android項目文件中你使用

AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); 
cfg.useGL20 = true;   
initialize(new MyGdxGame(), cfg); 

至於如果應用程序配置未設置爲允許使用的GL20它會忽略到GL20對象的所有電話。缺省值(如果未明確設置)爲false。

+1

是的,我在應用程序配置中設置了此選項。 經過一段時間的實驗後,我終於設法修改了一個算法 - 現在我使用黑白蒙版而不是alpha蒙版和另一組混合參數。它可以在桌面和android上正常工作。 因此,初始參數組合看起來有些問題。 – user1793975