From c945151b8e58d9f2c776ca582cc2b33a3a9b0731 Mon Sep 17 00:00:00 2001 From: ALGLAVE Ivan <ivan.alglave8@etu.univ-lorraine.fr> Date: Tue, 1 Dec 2020 16:27:38 +0100 Subject: [PATCH] Fixed newScreen render(float delta) method not being called, plus got delta frameTime from libGDX. Intro screen is base screen, being just a red screen for now --- .../com/mygdx/game/GameScreens/GameIntro.java | 16 ++++++ .../mygdx/game/GameScreens/GameScreen.java | 6 +-- .../game/GameScreens/GameScreenManager.java | 2 + core/src/com/mygdx/game/TableFootball.java | 3 +- .../mygdx/game/singletons/FontManager.java | 49 +++++++++++++++++++ 5 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 core/src/com/mygdx/game/singletons/FontManager.java diff --git a/core/src/com/mygdx/game/GameScreens/GameIntro.java b/core/src/com/mygdx/game/GameScreens/GameIntro.java index b9c836a..970757a 100644 --- a/core/src/com/mygdx/game/GameScreens/GameIntro.java +++ b/core/src/com/mygdx/game/GameScreens/GameIntro.java @@ -1,12 +1,28 @@ package com.mygdx.game.GameScreens; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.mygdx.game.singletons.FontManager; + /** * Intro screen showing a preview of the game for a few seconds */ public class GameIntro extends GameScreen { + @Override public void buildStage() { + /*Label l = new Label("Intro screen", FontManager.getInstance().getLabelStyle(Color.BLACK)); + l.setPosition(50, 50); + addActor(l);*/ + } + + @Override + public void render(float delta) { + + // Add logic + // Call the drawing methods of the parent to render the screen + super.render(delta); } } diff --git a/core/src/com/mygdx/game/GameScreens/GameScreen.java b/core/src/com/mygdx/game/GameScreens/GameScreen.java index ee4b330..cf9454a 100644 --- a/core/src/com/mygdx/game/GameScreens/GameScreen.java +++ b/core/src/com/mygdx/game/GameScreens/GameScreen.java @@ -22,11 +22,11 @@ public abstract class GameScreen extends Stage implements Screen { public abstract void buildStage(); @Override - public void render(float delta) { + public void render(float delta) + { // Clear screen - Gdx.gl.glClearColor(1, 0, 0, 1); + Gdx.gl.glClearColor(255, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - // Calling to Stage methods super.act(delta); super.draw(); diff --git a/core/src/com/mygdx/game/GameScreens/GameScreenManager.java b/core/src/com/mygdx/game/GameScreens/GameScreenManager.java index 83785a3..802b8e7 100644 --- a/core/src/com/mygdx/game/GameScreens/GameScreenManager.java +++ b/core/src/com/mygdx/game/GameScreens/GameScreenManager.java @@ -45,9 +45,11 @@ public class GameScreenManager { public void showGameScreen(GameScreenEnum gameScreen, Object... args) { Screen oldScreen = game.getScreen(); + if(oldScreen != null) oldScreen.hide(); GameScreen newScreen = gameScreen.getScreen(args); newScreen.buildStage(); game.setScreen(newScreen); + newScreen.show(); if(oldScreen != null) oldScreen.dispose(); } diff --git a/core/src/com/mygdx/game/TableFootball.java b/core/src/com/mygdx/game/TableFootball.java index 91c8268..30a8f5c 100644 --- a/core/src/com/mygdx/game/TableFootball.java +++ b/core/src/com/mygdx/game/TableFootball.java @@ -22,10 +22,11 @@ public class TableFootball extends Game { @Override public void render () { + if(screen != null) screen.render(Gdx.graphics.getDeltaTime()); } @Override public void dispose () { - + int a = 10; } } diff --git a/core/src/com/mygdx/game/singletons/FontManager.java b/core/src/com/mygdx/game/singletons/FontManager.java new file mode 100644 index 0000000..6f34b9f --- /dev/null +++ b/core/src/com/mygdx/game/singletons/FontManager.java @@ -0,0 +1,49 @@ +package com.mygdx.game.singletons; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; +import com.badlogic.gdx.scenes.scene2d.ui.Label; + +public class FontManager +{ + private static FontManager fm = new FontManager(); + + private AssetManager am; + + private FontManager() + { + am = new AssetManager(); + } + + public static FontManager getInstance() + { + return fm; + } + + public BitmapFont generateFont() + { + FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("HFF Ice Bergman.ttf")); + FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter(); + parameter.size = 30; + parameter.borderWidth = 1; + parameter.color = Color.BLUE; + parameter.shadowOffsetX = 3; + parameter.shadowOffsetY = 3; + parameter.shadowColor = new Color(0, 0.5f, 0, 0.75f); + BitmapFont font = generator.generateFont(parameter); // font size 24 pixels + generator.dispose(); + + return font; + } + + public Label.LabelStyle getLabelStyle(Color fontColor) + { + Label.LabelStyle l = new Label.LabelStyle(); + l.font = generateFont(); + l.fontColor = fontColor; + return l; + } +} -- GitLab