2012-11-02 7 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(); 

그것은 바탕 화면에 잘 작동을 (12.04를 우분투)는 그러나 나는 그것을 시도 어떤 안드로이드 폰/태블릿에 작동하지 않습니다 (그들은 모두 OpenGL Es 2.0을 지원합니다). Android 기기에서 블렌딩이 잘못 될 수 있습니까? 당신의 안드로이드 프로젝트 파일에서

답변

0

는 응용 프로그램 구성은 (는) GL20 객체에 대한 모든 호출을 무시합니다 GL20를 사용할 수 있도록 설정되어 있지 않은 것처럼 당신이

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

을 사용합니까. 기본값 (명시 적으로 설정되지 않은 경우)은 false입니다.

+1

예, 응용 프로그램 구성에서이 옵션을 설정합니다. 실험을 한 후에 알고리즘을 수정하는 데 성공했습니다. 이제 알파 마스크 대신 흑백 마스크를 사용하고 혼합 매개 변수를 사용합니다. 그것은 데스크톱과 안드로이드에서 올바르게 작동합니다. 초기 params 조합에 문제가있는 것 같습니다. – user1793975