master
GammelJAN 5 years ago
commit 6ea195db76

@ -1,7 +1,9 @@
package com.trs.game; package com.trs.game;
import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.BitmapFont;
@ -12,8 +14,16 @@ import com.badlogic.gdx.utils.Timer;
import com.trs.game.model.Model; import com.trs.game.model.Model;
import com.trs.game.view.View; import com.trs.game.view.View;
import com.trs.game.view.Button; import com.trs.game.view.Button;
import com.trs.game.view.Screen;
import com.trs.game.view.Screens.EndScreen;
import com.trs.game.view.Screens.GameScreen;
import com.trs.game.view.Screens.MainMenuScreen;
public class Controller extends ApplicationAdapter implements InputProcessor {
final int GAME_WORLD_WIDTH = 1600;
final int GAME_WORLD_HEIGHT = 900;
public class Controller extends ApplicationAdapter {
SpriteBatch batch; SpriteBatch batch;
ShapeRenderer renderer; ShapeRenderer renderer;
Timer wallTimer; Timer wallTimer;
@ -21,7 +31,7 @@ public class Controller extends ApplicationAdapter {
View view; View view;
BitmapFont font; BitmapFont font;
Button button; Screen screen;
@Override @Override
public void create () { public void create () {
@ -37,32 +47,29 @@ public class Controller extends ApplicationAdapter {
// TODO: Implement timertask // TODO: Implement timertask
} }
}, 0, 1f); }, 0, 1f);
button = new Button(0, 200, 150, 200, 80, "EHRE", Color.YELLOW, Color.BLACK);
font = new BitmapFont(); font = new BitmapFont();
// BITMAP FONT
font = new BitmapFont();
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("font.ttf")); FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("font.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter(); FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 21; parameter.size = 21;
font = generator.generateFont(parameter); font = generator.generateFont(parameter);
generator.dispose(); generator.dispose();
font.setColor(Color.BLACK); font.setColor(Color.BLACK);
//
screen = new MainMenuScreen(GAME_WORLD_WIDTH,GAME_WORLD_HEIGHT);
Gdx.input.setInputProcessor(this);
} }
@Override @Override
public void render () { public void render () {
Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.end();
renderer.begin(ShapeRenderer.ShapeType.Filled);
renderer.setColor(Color.WHITE);
renderer.rect(50,50,0,0,50,50,1,1,45);
renderer.setColor(Color.BLACK);
renderer.circle(50,50,5);
renderer.end();
button.render(batch,renderer,font);
screen.render(batch,renderer,font);
} }
@Override @Override
@ -70,4 +77,47 @@ public class Controller extends ApplicationAdapter {
batch.dispose(); batch.dispose();
renderer.dispose(); renderer.dispose();
} }
@Override
public boolean keyDown(int keycode) {
return false;
}
@Override
public boolean keyUp(int keycode) {
return false;
}
@Override
public boolean keyTyped(char character) {
return false;
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if(screen.getId() == 0) screen = new GameScreen(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT);
else if(screen.getId() == 1) screen = new EndScreen(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT);
else if(screen.getId() == 2) screen = new MainMenuScreen(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT);
return true;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
return false;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
return false;
}
@Override
public boolean mouseMoved(int screenX, int screenY) {
return false;
}
@Override
public boolean scrolled(int amount) {
return false;
}
} }

@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.GlyphLayout; import com.badlogic.gdx.graphics.g2d.GlyphLayout;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable; import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable;
public class Button { public class Button {
@ -54,6 +55,10 @@ public class Button {
this.id = id; this.id = id;
} }
public Rectangle getRect(){
return new Rectangle(xPos,yPos,width,height);
}
public float getTextWidth(BitmapFont font, String text){ public float getTextWidth(BitmapFont font, String text){
GlyphLayout glyphLayout = new GlyphLayout(); GlyphLayout glyphLayout = new GlyphLayout();
glyphLayout.setText(font,text); glyphLayout.setText(font,text);

@ -1,5 +1,9 @@
package com.trs.game.view; package com.trs.game.view;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import java.util.ArrayList; import java.util.ArrayList;
public abstract class Screen { public abstract class Screen {
@ -7,17 +11,20 @@ public abstract class Screen {
public final int SCREEN_WIDTH; public final int SCREEN_WIDTH;
public final int SCREEN_HEIGHT; public final int SCREEN_HEIGHT;
int id; private int id;
ArrayList<Button> buttons; public ArrayList<Button> buttons;
public ArrayList<Text> texts;
public Screen(int SCREEN_WIDTH, int SCREEN_HEIGHT){ public Screen(int SCREEN_WIDTH, int SCREEN_HEIGHT, int id){
buttons = new ArrayList(); buttons = new ArrayList();
texts = new ArrayList();
this.SCREEN_WIDTH = SCREEN_WIDTH; this.SCREEN_WIDTH = SCREEN_WIDTH;
this.SCREEN_HEIGHT =SCREEN_HEIGHT; this.SCREEN_HEIGHT =SCREEN_HEIGHT;
this.id = id;
} }
abstract public void timer(); abstract public void timer();
abstract public void render(); abstract public void render(SpriteBatch batch, ShapeRenderer renderer, BitmapFont font);
abstract public int touchDown(int x, int y); abstract public int touchDown(int x, int y);
abstract public void dispose(); abstract public void dispose();

@ -0,0 +1,44 @@
package com.trs.game.view.Screens;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.trs.game.view.Button;
import com.trs.game.view.Screen;
import com.trs.game.view.Text;
public class EndScreen extends Screen {
public EndScreen(int GAME_WORLD_WIDTH, int GAME_WORLD_HEIGHT){
super(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, 2);
buttons.add(new Button(0,0,0,200,200,"EndScreen", Color.BLACK,Color.WHITE));
texts.add(new Text(500,500,"EHREEHREEHRE",Color.RED));
}
@Override
public void timer() {
}
@Override
public void render(SpriteBatch batch, ShapeRenderer renderer, BitmapFont font) {
for(Button button : buttons){
button.render(batch,renderer,font);
}
for(Text text : texts){
text.render(batch,font);
}
}
@Override
public int touchDown(int x, int y) {
return 0;
}
@Override
public void dispose() {
}
}

@ -0,0 +1,53 @@
package com.trs.game.view.Screens;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.trs.game.view.Button;
import com.trs.game.view.Screen;
import com.trs.game.view.Text;
public class GameScreen extends Screen {
public GameScreen(int GAME_WORLD_WIDTH, int GAME_WORLD_HEIGHT){
super(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, 1);
buttons.add(new Button(0,0,0,200,200,"GameScreen", Color.BLACK,Color.WHITE));
texts.add(new Text(500,500,"EHREEHRE",Color.RED));
}
@Override
public void timer() {
}
@Override
public void render(SpriteBatch batch, ShapeRenderer renderer, BitmapFont font) {
for(Button button : buttons){
button.render(batch,renderer,font);
}
for(Text text : texts){
text.render(batch,font);
}
}
@Override
public int touchDown(int x, int y) {
Rectangle r = new Rectangle(x,y,1,1);
for(Button button : buttons){
if(Intersector.overlaps(r, button.getRect())){
System.out.println(button.getId());
return button.getId();
}
}
return 0;
}
@Override
public void dispose() {
}
}

@ -0,0 +1,44 @@
package com.trs.game.view.Screens;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.trs.game.view.Button;
import com.trs.game.view.Screen;
import com.trs.game.view.Text;
public class MainMenuScreen extends Screen {
public MainMenuScreen(int GAME_WORLD_WIDTH, int GAME_WORLD_HEIGHT){
super(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, 0);
buttons.add(new Button(0,0,0,200,200,"MainMenuScreen", Color.BLACK,Color.WHITE));
texts.add(new Text(500,500,"EHRE",Color.RED));
}
@Override
public void timer() {
}
@Override
public void render(SpriteBatch batch, ShapeRenderer renderer, BitmapFont font) {
for(Button button : buttons){
button.render(batch,renderer,font);
}
for(Text text : texts){
text.render(batch,font);
}
}
@Override
public int touchDown(int x, int y) {
return 0;
}
@Override
public void dispose() {
}
}

@ -0,0 +1,28 @@
package com.trs.game.view;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class Text {
int xPos;
int yPos;
String text;
Color color;
public Text(int xPos, int yPos, String text, Color color){
this.xPos = xPos;
this.yPos = yPos;
this.text = text;
this.color = color;
}
public void render(SpriteBatch batch, BitmapFont font){
if(batch.isDrawing()) batch.end();
batch.begin();
font.setColor(color);
font.draw(batch,text,xPos,yPos);
batch.end();
}
}

@ -7,6 +7,8 @@ import com.trs.game.Controller;
public class DesktopLauncher { public class DesktopLauncher {
public static void main (String[] arg) { public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.width = 1600;
config.height = 900;
new LwjglApplication(new Controller(), config); new LwjglApplication(new Controller(), config);
} }
} }

Loading…
Cancel
Save