2012-09-12 41 views
11

Đây có phải là cách tải kết cấu đúng cách vào một số AssetManager không?Cách tải đúng họa tiết bằng cách sử dụng trình quản lý tài sản libgdx

Texture tex; 
AssetManager manager = new AssetManager(); 
manager.load("menu/bg.png",Texture.class); 
tex = manager.get("menu/bg.png",Texture.class); 

Kết cấu không tải được do lỗi "không thể tải trình đơn kết cấu/bg.png".

Làm cách nào để tải kết cấu của chúng tôi bằng cách sử dụng AssetManager?

Trả lời

20

Đây gần như cách sử dụng AssetManager, nhưng không hoàn toàn. Tôi khuyên bạn nên đọc trên wiki về số libgdx AssetManager.

Một số điểm:
Biến phải ở trong camelCase, vì vậy AssetManager quản lý ... thay vì AssetManager quản lý.

Bạn cần gọi số manager.update(); để thực sự làm cho nó tải công cụ. Điều này sẽ cần phải được gọi cho đến manager.update(); trả về true, sau đó tải xong. Vì vậy, bạn có thể tạo màn hình tải nơi bạn gọi manager.update(); mỗi khung hình và khi nó trả về true, bạn chuyển sang một số màn hình khác.
Nếu bạn chỉ muốn mọi thứ tải và chặn cho đến khi được tải, hãy gọi manager.finishLoading(); trước khi cố gắng lấy bất kỳ thứ gì từ người quản lý.

Bạn có thể phải tạo thư mục trong thư mục assets có tên data và đặt nội dung của bạn ở đó thay vì đặt chúng trực tiếp trong thư mục nội dung. Vì vậy, hãy đặt nội dung của bạn vào mygame-android\assets\data thay vì mygame-android\assets.

Nếu bạn đang sử dụng gdx-setup-gui để tạo dự án của mình, bạn sẽ ổn thôi. Nhưng nếu không, dự án máy tính để bàn của bạn sẽ cần phải biết nơi để tìm tài sản là tốt.

Ví dụ về cách tạo animated, responsive loading screen with libgdx. (video)

+0

Tôi đang làm điều tương tự như trên, tôi đã xem video của bạn nhưng tại thời điểm này tôi chỉ muốn sử dụng trình quản lý nội dung để thêm png hoặc jpg làm nền. Mã của tôi là như nhau nhưng tôi đã thêm xongLoading. và cố gắng thêm nó vào giai đoạn nhưng đó không phải là một diễn viên vì vậy tôi không thể thêm nó vào sân khấu. manager.load ("asset/data/badlogic.jpg", Texture.class); \t \t manager.finishLoading(); \t \t bg = manager.get ("asset/data/badlogic.jpg", Texture.class); \t \t stage.addActor (bg); – user629283

+0

nb: bất kỳ thư mục nào bên dưới tài sản sẽ thực hiện. – RichieHH

Các vấn đề liên quan