2013-12-09 3 views
3

저는 libgdx 엔진을 사용하는 새로운 프로그래머이며 스프라이트 배치 작업에 궁금합니다. 특히 프로그램 수명주기 동안 그리기를 위해 배치에 스프라이트를 추가하는 방법. 지금까지 모든 스프라이트 예제는 다음과 유사한 코드를 사용했습니다 : batch.begin(); sprite.draw(batch); batch.end(); 등등. 그리고 각 스프라이트 .draw를 배치에서 호출해야하므로 다양한 스프라이트 수를 그릴 방법이 명확하지 않습니다 ... 감사합니다. 설명을 위해 사전에!LibGDX Sprite 런타임시 새 스프라이트에서 일괄 처리 및 추가

+0

무대 배우 시스템을 살펴보십시오. 이미 모든 액터를 추가하는 "단계"를 구현합니다. 스테이지의 간단한 .draw로 모든 배우를 현재 위치와 현재 상태로 그립니다. 시스템을 이해하기 위해 코드를 살펴볼 수 있습니다. 또한 gameloop 개념을 살펴볼 수 있습니다. – BennX

+1

큰 제안 정신 = 날아간 벤! – TypingTurtle

답변

2

간단히 말해서 어떤 시점에서 스프라이트를 그리는 요청으로 sprite.draw()에 대한 각 호출을 생각해보십시오. 을 호출 할 때마다 sprite.draw()이 배치에 스프라이트를 추가합니다. batch.end()이 호출되면 배치에 추가 된 모든 스프라이트가 그려지고 일괄 처리가 비게됩니다. 일괄 처리의 내용이 영속적이지 않기 때문에 (즉, batch.end()이 호출 될 때 비워집니다), 스프라이트와 이미지는 매번 사용될 때마다 추가되어야합니다.

다음 예제에서, 그려지는 모든 스프라이트는 스프라이트 모음에 저장되고 그릴 때마다 일괄 처리에 추가됩니다.이 스프레드는 렌더에서 호출되는 경우 각 프레임에 있습니다) 방법.

batch.begin(); 
for (sprite : sprites) { 
    sprite.draw(batch); 
} 
batch.end() 

현실이 완전하고 몇 상황에서 때 플래시 해, 좀 더 복잡한, 스프라이트 배치 등이지만, 엄지 손가락의 좋은 규칙은 각에 그릴 원하는 모든 것을 추가하는 것입니다 모든 프레임.

+0

이것은 정확히 내가 당신에게 설명해 주신 것에 감사드립니다. – TypingTurtle