2013-11-04 2 views
0

내 테스트 프로그램의 안드로이드 버전에서는 처음 실행시에는 모든 것이 괜찮지 만 나중에 실행하면 모든 텍스처가 흰색 블록입니다.libGDX 모든 텍스처/스프라이트 흰색 블록

하지만 데스크톱 버전은 괜찮습니다. Android 만 있습니다. 또한 Eclipse에서 릴리스 또는 디버그를 통해 프로그램을 실행하면 매번 작동합니다.

작업 관리자와 '메모리 지우기'로 이동하면 해결됩니다.

시작시 스프라이트 시트를로드하고 모든 것을 처리하고 있음을 확신합니다.

무엇이 잘못 될 수 있습니까?

답변

0

수정 됨.

public static GameGraphics getInstance(){ 
    if(spritesInstance==null) { 
     spritesInstance=new GameGraphics(); 

     spritesInstance.spriteSheet = new Texture(Gdx.files.internal("data/sprite_sheet.png")); 
     spritesInstance.sprites=TextureRegion.split(spritesInstance.spriteSheet, 32, 32); 
     for(TextureRegion r : spritesInstance.sprites[0]) r.flip(false,true); 
    } 
    return spritesInstance; 
} 

그래서 호출되는 한 처분의가 파괴 질감 : {

내가이 싱글 일회용 만든 공용 클래스 GameGraphics를 구현 : 나는하지 100 %가

내 수업에서

이유하지만 난 알 것 같아 libGDX하지만 내 인스턴스는 여전히 남아 있습니다. 왜? libgdx/opengl과 함께 다른 잡기가 있습니까?

+0

이것은 전혀 문제가되지 않습니다. 인스턴스를 'null'로 리셋하지 않으면 자체 제작 된 싱글 톤에서 libgdx의 결함을 고려할 수 없습니다. 이런 식으로 AssetManager를 사용해야합니다. 이 작업을 위해 특별히 설계되었습니다. – noone

+0

건배, 나는 libgdx/opengl에 결함이 없다는 것을 의미했지만, 그 코드를 열 번 더 읽으면 그 모든 것이 나에게 잘 들리는 것처럼 보였다. 나는 dispose가 내 포인터라고 부름을 받았기 때문에 그렇게 생각했다. :) 아직 시작한 AssetManager는 아직 보지 못했습니다. –

관련 문제