chore(assets): move black & white texture to Assets

This commit is contained in:
2025-09-30 12:26:33 +07:00
parent e19259c2c4
commit 7d9a1f109f
4 changed files with 49 additions and 11 deletions

View File

@ -16,12 +16,4 @@ public class Constants {
public static final int WINDOW_WIDTH = 1280;
public static final int WINDOW_HEIGHT = 720;
public static final String WINDOW_TITLE = "Moongazer";
public static final Texture TEXTURE_WHITE = new Texture(new Pixmap(1, 1, Pixmap.Format.RGBA8888) {{
setColor(Color.WHITE);
fill();
}});
public static final Texture TEXTURE_BLACK = new Texture(new Pixmap(1, 1, Pixmap.Format.RGBA8888) {{
setColor(Color.BLACK);
fill();
}});
}

View File

@ -5,6 +5,8 @@ import org.slf4j.Logger;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.assets.loaders.FileHandleResolver;
import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGeneratorLoader;
@ -19,9 +21,21 @@ public class Assets {
private static final ArrayList<String> loadedFonts = new ArrayList<>();
private static boolean startLoadAll = false;
private static boolean loadedAll = false;
private static Texture textureWhite;
private static Texture textureBlack;
public static <T> T getAsset(String fileName, Class<T> type) {
return assetManager.get(fileName, type);
try {
if (!assetManager.isLoaded(fileName, type)) {
log.warn("Asset not loaded: {}", fileName);
assetManager.load(fileName, type);
assetManager.finishLoadingAsset(fileName);
}
return assetManager.get(fileName, type);
} catch (Exception e) {
log.error("Failed to load asset: {}", fileName, e);
throw new RuntimeException("Asset loading failed: " + fileName, e);
}
}
/**
@ -57,6 +71,8 @@ public class Assets {
*/
public static void loadIntroAndWait() {
assetManager.load("icons/logo.png", Texture.class);
getBlackTexture();
getWhiteTexture();
waitUntilLoaded();
}
@ -92,7 +108,37 @@ public class Assets {
return assetManager;
}
public static Texture getWhiteTexture() {
if (textureWhite == null) {
Pixmap pixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
pixmap.setColor(Color.WHITE);
pixmap.fill();
textureWhite = new Texture(pixmap);
pixmap.dispose(); // Important: dispose pixmap after creating texture
}
return textureWhite;
}
public static Texture getBlackTexture() {
if (textureBlack == null) {
Pixmap pixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
pixmap.setColor(Color.BLACK);
pixmap.fill();
textureBlack = new Texture(pixmap);
pixmap.dispose();
}
return textureBlack;
}
public static void dispose() {
assetManager.dispose();
if (textureWhite != null) {
textureWhite.dispose();
textureWhite = null;
}
if (textureBlack != null) {
textureBlack.dispose();
textureBlack = null;
}
}
}

View File

@ -45,7 +45,7 @@ public class Intro extends Scene {
log.info("All assets loaded successfully.");
game.transition = new Transition(game, this, game.mainMenuScene, State.MAIN_MENU, 1000);
}
batch.draw(TEXTURE_BLACK, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
batch.draw(Assets.getBlackTexture(), 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
return;
}
ScreenUtils.clear(Color.BLACK);

View File

@ -30,7 +30,7 @@ public class MainMenu extends Scene {
*/
@Override
public void render(SpriteBatch batch) {
batch.draw(TEXTURE_WHITE, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
batch.draw(Assets.getWhiteTexture(), 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
// Unneeded as using Scene2D Stage to render the label
// textLabel.draw(batch, 1.0f);
}