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