diff --git a/core/assets/font.ttf b/core/assets/font.ttf new file mode 100644 index 0000000..dcca687 Binary files /dev/null and b/core/assets/font.ttf differ diff --git a/core/src/com/trs/game/Controller.java b/core/src/com/trs/game/Controller.java index 25588ac..755ea1e 100644 --- a/core/src/com/trs/game/Controller.java +++ b/core/src/com/trs/game/Controller.java @@ -4,12 +4,14 @@ import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; -import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.utils.Timer; import com.trs.game.model.Model; import com.trs.game.view.View; +import com.trs.game.view.Button; public class Controller extends ApplicationAdapter { SpriteBatch batch; @@ -17,6 +19,9 @@ public class Controller extends ApplicationAdapter { Timer wallTimer; Model model; View view; + BitmapFont font; + + Button button; @Override public void create () { @@ -32,11 +37,20 @@ public class Controller extends ApplicationAdapter { // TODO: Implement timertask } }, 0, 1f); + button = new Button(0, 200, 150, 200, 80, "EHRE", Color.YELLOW, Color.BLACK); + font = new BitmapFont(); + + FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("font.ttf")); + FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter(); + parameter.size = 21; + font = generator.generateFont(parameter); + generator.dispose(); + font.setColor(Color.BLACK); } @Override public void render () { - Gdx.gl.glClearColor(1, 0, 0, 1); + Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); batch.end(); @@ -46,6 +60,9 @@ public class Controller extends ApplicationAdapter { renderer.setColor(Color.BLACK); renderer.circle(50,50,5); renderer.end(); + + button.render(batch,renderer,font); + } @Override diff --git a/core/src/com/trs/game/view/Button.java b/core/src/com/trs/game/view/Button.java new file mode 100644 index 0000000..1c51d2b --- /dev/null +++ b/core/src/com/trs/game/view/Button.java @@ -0,0 +1,68 @@ +package com.trs.game.view; + +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.GlyphLayout; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable; + +public class Button { + int id; + int xPos; + int yPos; + int width; + int height; + String text; + Color buttonColor; + Color textColor; + + + public Button(int id, int xPos, int yPos, int width, int height, String text, Color buttonColor, Color textColor){ + this.id = id; + this.xPos = xPos; + this.yPos = yPos; + this.width = width; + this.height = height; + this.text = text; + this.buttonColor = buttonColor; + this.textColor = textColor; + } + + public void render(SpriteBatch batch, ShapeRenderer renderer, BitmapFont font){ + if(batch.isDrawing())batch.end(); + if(renderer.isDrawing()) renderer.end(); + renderer.begin(ShapeRenderer.ShapeType.Filled); + renderer.setColor(buttonColor); + renderer.rect(xPos, yPos, width, height); + renderer.end(); + batch.begin(); + font.setColor(textColor); + font.draw(batch, text, ((xPos + width/2) - (getTextWidth(font,text)/2)), ((yPos + height/2) + (getTextHeight(font,text)/2))); + batch.end(); + } + + public void dispose(){ + + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public float getTextWidth(BitmapFont font, String text){ + GlyphLayout glyphLayout = new GlyphLayout(); + glyphLayout.setText(font,text); + return glyphLayout.width; + } + public float getTextHeight(BitmapFont font, String text){ + GlyphLayout glyphLayout = new GlyphLayout(); + glyphLayout.setText(font,text); + return glyphLayout.height; + } + +} \ No newline at end of file diff --git a/core/src/com/trs/game/view/Screen.java b/core/src/com/trs/game/view/Screen.java index 6aaa91e..c7ae438 100644 --- a/core/src/com/trs/game/view/Screen.java +++ b/core/src/com/trs/game/view/Screen.java @@ -1,4 +1,35 @@ package com.trs.game.view; -public interface Screen { +import java.util.ArrayList; + +public abstract class Screen { + + public final int SCREEN_WIDTH; + public final int SCREEN_HEIGHT; + + int id; + ArrayList