Ich benutze LibGDX, um ein Spiel zu erstellen. Ich habe AssetManager
implementiert, um alle Assets zu laden, und ich habe auch eine Klasse GameSkin
erstellt, die eine Skin so viele Button-Stile und ähnliches hinzufügt, dass ich es nicht manuell machen muss. Hier ist sie:Ich bekomme einen schwarzen Bildschirm in meinem Spiel, nachdem ich die Zurück-Taste gedrückt habe und
public class GameSkin extends Skin {
private static final AssetManager ASSET_MANAGER = Assets.getAssetManager();
private TextureAtlas atlas;
private FreeTypeFontGenerator generator;
private FreeTypeFontGenerator.FreeTypeFontParameter parameter;
private BitmapFont defaultFont;
private TextButton.TextButtonStyle redButtonStyle, orangeButtonStyle, greenButtonStyle, blueButtonStyle, defaultButtonStyle;
private Label.LabelStyle labelStyle;
private Window.WindowStyle windowStyle, firstTimeWindowStyle;
public GameSkin() {
Assets.load();
ASSET_MANAGER.finishLoading();
atlas = ASSET_MANAGER.get("uiskin.atlas");
addRegions(atlas);
generator = new FreeTypeFontGenerator(Gdx.files.internal("font/komika.ttf"));
parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 100;
defaultFont = generator.generateFont(parameter);
generator.dispose();
defaultButtonStyle = new TextButton.TextButtonStyle();
redButtonStyle = new TextButton.TextButtonStyle();
orangeButtonStyle = new TextButton.TextButtonStyle();
greenButtonStyle = new TextButton.TextButtonStyle();
blueButtonStyle = new TextButton.TextButtonStyle();
redButtonStyle.font = defaultFont;
redButtonStyle.up = getDrawable("rbup");
redButtonStyle.down = getDrawable("rbdown");
orangeButtonStyle.font = defaultFont;
orangeButtonStyle.up = getDrawable("obup");
orangeButtonStyle.down = getDrawable("obdown");
greenButtonStyle.font = defaultFont;
greenButtonStyle.up = getDrawable("gbup");
greenButtonStyle.down = getDrawable("gbdown");
blueButtonStyle.font = defaultFont;
blueButtonStyle.up = getDrawable("bbup");
blueButtonStyle.down = getDrawable("bbdown");
defaultButtonStyle.font = defaultFont;
defaultButtonStyle.up = getDrawable("obup");
defaultButtonStyle.down = getDrawable("obdown");
labelStyle = new Label.LabelStyle(defaultFont, Color.WHITE);
windowStyle = new Window.WindowStyle(defaultFont, Color.WHITE, getDrawable("GT"));
firstTimeWindowStyle = new Window.WindowStyle(defaultFont, Color.WHITE, getDrawable("guide"));
add("default-font", defaultFont);
add("red-button", redButtonStyle);
add("orange-button", orangeButtonStyle);
add("green-button", greenButtonStyle);
add("blue-button", blueButtonStyle);
add("default", defaultButtonStyle);
add("default", labelStyle);
add("default", windowStyle);
add("first-time", firstTimeWindowStyle);
}
@Override
public void dispose() {
super.dispose();
}
}
Dies ist, wie der Begrüßungsbildschirm wie folgt aussieht:
Und das ist, was passiert, nachdem ich die Zurück-Taste drücken, um zu beenden und dann tippen Sie auf die App um fortzufahren:
Es scheint, dass alles (?) neben dem BitmapFont, das ich auf den Tasten verwende, entsorgt wird, aber ich verstehe nicht, was falsch ist mit diesem. Jeder kann helfen?
Sie einen statischen Verweis nicht auf Ihre Assets oder Texturen verwenden. https://github.com/libgdx/libgdx/wiki/Managing-your-assets#creating-an-assetmanager – Tenfour04
Ich benutzte das und es funktionierte. Vielen Dank! –