2013-12-22 7 views
1

spriteBatch를 저장할 수 있는지 알고 싶습니다. Libgdx 텍스처에 SpriteBatch 저장

SpriteBatch batch = new SpriteBatch(); 

배치 안에 몇 일을 그린 후, 나는 한 질감에
(A 스크린 샷 같은 것을)에의 SpriteBatch를 포함하는 모든 일을 저장 싶습니다.

어떻게해야할지 모르겠으며 웹과 libgdx 문서를 검색했지만 찾을 수 없습니다.

덕분에 당신은

+0

스크린 샷을 찍은 경우에만 사용하십시오. https://code.google.com/p/libgdx-users/wiki/Screenshots –

+0

이 코드는 알고 두 가지 이유 때문에 좋지 않습니다. 1. 스크린 샷을 파일로 저장해야합니다. 2. 파일을 저장하고 텍스처에서 파일을로드하는 것은 너무 길어서 실행에 많은 시간을 낭비합니다. 이 스크린 샷을 텍스쳐에 넣고 싶습니다. – LeSam

+0

파일로 저장하는 대신 texture = new texture (pixmap)를 사용하십시오. –

답변

2

당신은 FrameBufferObject (FBO)로 렌더링 할 수 있습니다. https://github.com/mattdesl/lwjgl-basics/wiki/FrameBufferObjects

미리 텍스처를 렌더링하기로 결정한 경우 FBO가 작동합니다. 한 가지 부작용은 이미지가 화면에 렌더링되지 않고 텍스처에만 렌더링된다는 것입니다. (물론 나중에 텍스처를 화면에 렌더링하기에 충분합니다.)

다른 대답이 제안되면 화면 버퍼에서 바이트를 긁어내어 Pixmap에서 Texture (파일 시스템까지 줄 필요가 없음)을 만들 수 있습니다. https://code.google.com/p/libgdx-users/wiki/Screenshots을 참조하십시오 (getScreenshot 메서드를 사용하여 Pixmap 바이트를 가져옵니다).

1

이 같은 텍스처로의 전환을 사용

final Pixmap pmap = new Pixmap(bytes, 0, bytes.length); 
try{ 
    Gdx.app.postRunnable(new Runnable(){ 
     public void run(){ 
     texture=new Texture(pmap); 
     } 
    }); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 
관련 문제