Libgdx создает TextButton с фоном с помощью uiskin.json
Я хочу определить фон TextButton с помощью uiskin.json.
Вот что я пробовал, но не получилось:
com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable: {
img: { file: bg.png }
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
default: { down: default-round-down, up: img, font: default-font, fontColor: white }
}
Поэтому я хочу сделать bg.png фоном по умолчанию. Как мне это сделать?
1 ответ
Скин не может прочитать расположение файлов из json. Если вы следовали инструкциям для Skin, вы, вероятно, создали его с помощью TextureAtlas следующим образом:
skin = new Skin(skinFilePath, textureAtlas);
Когда вы загружаете его таким образом, все изображения в json должны быть доступны по их именам в TextureAtlas.
Как правило, вам нужно, чтобы все ваши изображения были в одном TextureAtlas по соображениям производительности. Так что лучшим решением было бы добавить это bg.png
изображение в ваш TextureAtlas, а затем вы можете обратиться к нему по имени TextureAtlas.
Если вам нужно загрузить его как отдельный файл, то вы должны вручную загрузить его перед загрузкой своего скина.
Texture bgTexture = new Texture("bg.png");
skin = new Skin(); //empty constructor causes it not to load yet.
skin.add("bg", bgTexture);
skin.addRegions(textureAtlas); // you will be responsible for disposing the atlas separately from the skin now.
skin.load(skinFilePath);