Как загрузить спрайт с помощью .assets.load ("file", file.type), каков должен быть тип файла для спрайта, в данном случае?Загрузка спрайта с менеджером активов LibGDX
ответ
Я думаю, что вы обычно не загружаете Sprite
напрямую, но вы загружаете его Texture
и создаете из него Sprite
.
Итак, вы вызываете assets.load("file", Texture.class)
, а затем создайте Sprite
с загруженным вами Texture
:
Sprite sprite = new Sprite(asstes.get("file", Texture.class))
.
Но я предлагаю вам использовать TextureAtlas
вместо Texture
.
A TextureAtlas
- это своего рода «Коллекция текстур», это, в основном, большой Texture
, в котором есть все единственное Texture
s.
Вы можете загрузить его, используя assets.load("atlas", TextureAtlas.class)
и получите его, используя: TextureAtlas atlas = assets.get("atlas", TextureAtlas.class)
.
Вы можете создать свой Sprite
так:
Sprite sprite = atlas.createSprite("spriteName");
Чтобы создать TextureAtlas
можно использовать TexturePacker
.
Не рекомендуется напрямую загружать спрайт. Когда на Android происходит потеря контекста, он освобождает память, занятую вашими загруженными активами. Поэтому прямой доступ к вашим активам после потери контекста немедленно приведет к краху возобновленного приложения.
Чтобы предотвратить вышеуказанную проблему, вы должны использовать AssetManager, который загружает и хранит такие активы, как текстуры, растровые изображения, карты плитки, звуки, музыку и т. Д. Используя AssetManager, вам придется загружать каждый актив только один раз.
рекомендуем способ сделать это состоит в следующем:
// load texture atlas
final String spriteSheet = "images/spritesheet.pack";
assetManager.load(spriteSheet, TextureAtlas.class);
// blocks until all assets are loaded
assetManager.finishedLoading();
// all assets are loaded, we can now create our TextureAtlas object
TextureAtlas atlas = assetManager.get(spriteSheet);
// (optional) enable texture filtering for pixel smoothing
for (Texture t: atlas.getTextures())
t.setFilter(TextureFilter.Linear, TextureFilter.Linear);
// Create AtlasRegion instance according the given <atlasRegionName>
final String atlasRegionName = "regionName";
AtlasRegion atlasRegion = atlas.findRegion(atlasRegionName);
// adjust your sprite position and dimensions here
final float xPos = 0;
final float yPos = 0;
final float w = asset.getWidth();
final float h = asset.getHeight();
// create sprite from given <atlasRegion>, with given dimensions <w> and <h>
// on the position of the given coordinates <xPos> and <yPos>
Sprite spr = new Sprite(atlasRegion, w, h, xPos, yPos);
- 1. Libgdx - загрузка активов
- 2. Загрузка активов с AssetManager в LibGDX, Java
- 3. продажа активов в Libgdx
- 4. libgdx Скриншот для спрайта
- 5. Перемещение спрайта в LibGDX
- 6. позиционирование спрайта в libgdx
- 7. Удаление спрайта Libgdx Java
- 8. Управление и загрузка активов с помощью AssetManager (Libgdx)
- 9. масштабирование активов без изменения спрайта
- 10. активов в Libgdx
- 11. Рисование частичного спрайта с пакетом-LibGdx
- 12. libgdx- изменение текстуры спрайта с помощью анимации
- 13. Перемещение спрайта с использованием входного процессора libgdx
- 14. libgdx - файлы активов удваиваются .apk
- 15. Хорошая практика загрузки активов LibGDX HTML (GWT)
- 16. Правильное удаление активов с помощью LibGdx AssetManager
- 17. Android Studio - установка пользовательских шрифтов с менеджером активов во фрагменте
- 18. Unity3d Загрузка пакета активов
- 19. динамическая загрузка активов heroku
- 20. Загрузка активов в iOS
- 21. Загрузка изображений из активов
- 22. Unity3d Загрузка пакетов активов
- 23. libgdx - изменение цвета спрайта до белого
- 24. Рисование шрифта внутри движущегося спрайта libgdx
- 25. Libgdx - Окрашивание только одной части спрайта динамически
- 26. Libgdx есть один корпус без спрайта
- 27. Как изменить размер спрайта в Libgdx?
- 28. LibGDX Поворот спрайта на каждой итерации
- 29. Как достичь отражения спрайта в libgdx
- 30. libgdx - найти координаты верхнего края спрайта?
Вместо того, чтобы создать новый 'Sprite' из' AtlasRegion' можно непосредственно создающих его из '' TextureAtlas' с atlas.createSprite (spritename) '. Также «TextureFilter» может быть установлен в конфигурации «TexturePacker», поэтому он настроен на весь «TextureAtlas». – Springrbua
Этот ответ не совсем корректен. Текстуры в libgdx автоматически * управляются * с или без AssetManager и поэтому автоматически перезагружаются после потери контекста. – Tenfour04
В libgdx вы можете иметь управляемые и неуправляемые текстуры. Следовательно, вы действительно можете избежать использования AssetManager, обеспечив автоматическое управление текстурами. Это тот случай, когда текстуры загружаются из FileHandle, но вы должны перезагрузить их вручную в 'resume()' и, возможно, в 'resize()', также если они были загружены из Pixmap. Чтобы избежать этой головной боли, я бы рекомендовал использовать «AssetManager». – Gio