2012-03-07 4 views
6

AssetManager 클래스를 LibGDX에서 사용하려고하는데 어떻게 작동하는지 알지만 로딩 화면을 구현하려고합니다. 나는 AssetManagerTest.java 파일 here, 을 따라 갔지만 제대로 작동하는 방법을 알아 내려고 애 쓰고 있습니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까? 내 목표는 자산 (텍스처, 사운드, 글꼴 등)을로드하고 화면에 완료 비율로 막대를 업데이트하는 것입니다. 내가 제공 한 링크에서 ResolutionFileResolverResolution[]을 이해하지 못합니다. 그들을 위해 무엇입니까? 내 목표는 모든 화면에서 내 게임에 필요한 모든 자산에 대한 액세스 권한을 부여 할 수있는 정적 클래스를 지원하는 것입니다. 이를 위해 선호되는 방법이 있습니까? 감사.AssetManager in LibGDX

답변

7

ResolutionFileResolver의 출처와 다른 '해결 자'를보고 나면 화면 해상도와 가장 일치하는 텍스처를로드하는 방법 일 뿐이라고 생각하지만 일치는 파일 이름 패턴을 기반으로합니다.

따라서 AssetManagerTest에는 320x480, 480x800 및 480x854의 화면 크기에 대한 질감이 있습니다. 각 텍스처 그룹은 ".320480"또는 ".480800"또는 ".480854"라는 디렉토리에 있어야합니다 ("low", "high"및 "wide"와 같이 원하는 이름을 사용할 수 있음) 이 디렉토리가 디렉토리 인 경우) 테스트의 line 56에 해결 자 배열을 만들 때이 정보를 모두 지정합니다.

이 모든 작업을 수행하는 이점은 manager.load()을 호출 할 때 "data/animation.png"와 같은 파일 이름을 선택한다는 것입니다. 그러면 resolver는 현재 화면 해상도와 가장 근접한 텍스처 팩을 찾아서로드합니다.

나머지 예제는 상당히 명확해야한다고 생각합니다. 최소한 AssetManager의 기본 사항입니다. 관리자를 만들고 로더를 설정 한 후 load()으로 전화를 걸어 get()으로 전화 한 다음 사용하면 unload()으로 전화하십시오.

진행률 막대를 업데이트하려면로드를 호출 할 때마다 수동으로 수행하면됩니다.

자산 관리를 위해 정적 클래스를 사용하는 것이 확실한 방법입니다. 또 다른 비슷한 옵션은 싱글 톤을 사용하는 것입니다. 그것은 haters를 가지고 있지만, 나는 public static과 거의 같지만 가비지 수집 환경의 간단한 프로젝트에서 괜찮을 것이라고 생각합니다.

다른 옵션은 게임 전역의 정적 복사본이있는 기본 클래스를 사용하고 다른 모든 게임 클래스가 기본 클래스를 상속하는 것입니다. 이것은 Replica Island에서 사용되는 접근 방법입니다. base classobject registry을 참조하십시오. 복제본 섬은 논평되고 안드로이드 & 자바 게임을 위해 체크 아웃할만한 가치가 있습니다.

+1

많은 것을 고맙게 생각합니다. 나는 그것을 작동 시켰고 당신의 제안을 사용했고 기본 클래스도 만들었습니다. 정말 좋아합니다. 훨씬 깨끗합니다. 도와 주셔서 감사합니다! –