mirror of
https://github.com/inf112-v20/Fiasko.git
synced 2025-02-07 18:49:34 +01:00
Legger til en uferdig skjerm for velging av programmeringskort
This commit is contained in:
parent
5fcfab5b01
commit
80d0c954de
@ -0,0 +1,109 @@
|
||||
package inf112.fiasko.roborally.game_wrapper;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.badlogic.gdx.Screen;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
import static com.badlogic.gdx.graphics.Color.GREEN;
|
||||
import static com.badlogic.gdx.graphics.Color.RED;
|
||||
|
||||
public class CardChoiceScreen extends InputAdapter implements Screen {
|
||||
private final RoboRallyWrapper roboRallyWrapper;
|
||||
|
||||
private final OrthographicCamera camera;
|
||||
private CardRectangle cardRectangle;
|
||||
private ShapeRenderer shapeRenderer;
|
||||
|
||||
public CardChoiceScreen(final RoboRallyWrapper roboRallyWrapper) {
|
||||
this.roboRallyWrapper = roboRallyWrapper;
|
||||
camera = new OrthographicCamera();
|
||||
camera.setToOrtho(true, 1200, 1200);
|
||||
Rectangle card1 = new Rectangle();
|
||||
card1.x = 1200/2;
|
||||
card1.y = 1200/2;
|
||||
card1.width = 100;
|
||||
card1.height = 100;
|
||||
cardRectangle = new CardRectangle(card1, false);
|
||||
shapeRenderer = new ShapeRenderer();
|
||||
shapeRenderer.setAutoShapeType(true);
|
||||
Gdx.input.setInputProcessor(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(float v) {
|
||||
Gdx.gl.glClearColor(0.2f, 0.2f, 0.2f, 1);
|
||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||
camera.update();
|
||||
roboRallyWrapper.batch.setProjectionMatrix(camera.combined);
|
||||
shapeRenderer.setProjectionMatrix(camera.combined);
|
||||
|
||||
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
|
||||
if (cardRectangle.selected) {
|
||||
shapeRenderer.setColor(RED);
|
||||
shapeRenderer.rect(cardRectangle.rectangle.x - 5, cardRectangle.rectangle.y - 5,
|
||||
cardRectangle.rectangle.width + 10, cardRectangle.rectangle.height + 10);
|
||||
}
|
||||
shapeRenderer.setColor(GREEN);
|
||||
shapeRenderer.rect(cardRectangle.rectangle.x, cardRectangle.rectangle.y,
|
||||
cardRectangle.rectangle.width, cardRectangle.rectangle.height);
|
||||
shapeRenderer.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resize(int i, int i1) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pause() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resume() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||
System.out.println(screenX + " " + screenY);
|
||||
System.out.println(cardRectangle.rectangle.x + " " + cardRectangle.rectangle.y + " " +
|
||||
cardRectangle.rectangle.width + " " + cardRectangle.rectangle.height);
|
||||
if (cardRectangle.rectangle.contains(screenX, screenY)) {
|
||||
cardRectangle.selected = true;
|
||||
System.out.println("Card touched");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
class CardRectangle {
|
||||
Rectangle rectangle;
|
||||
boolean selected;
|
||||
|
||||
CardRectangle(Rectangle rectangle, boolean selected) {
|
||||
this.rectangle = rectangle;
|
||||
this.selected = selected;
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ public class RoboRallyWrapper extends Game {
|
||||
batch = new SpriteBatch();
|
||||
font = new BitmapFont();
|
||||
this.screenManager = new ScreenManager();
|
||||
this.setScreen(screenManager.getMainMenuScreen(this));
|
||||
this.setScreen(screenManager.getCardChoiceScreen(this));
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
|
@ -6,6 +6,7 @@ package inf112.fiasko.roborally.game_wrapper;
|
||||
public class ScreenManager {
|
||||
private MainMenuScreen mainMenuScreen;
|
||||
private BoardActiveScreen boardActiveScreen;
|
||||
private CardChoiceScreen cardChoiceScreen;
|
||||
|
||||
/**
|
||||
* Gets an instance of the main menu screen
|
||||
@ -30,4 +31,16 @@ public class ScreenManager {
|
||||
}
|
||||
return boardActiveScreen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an instance of the board active screen
|
||||
* @param roboRallyWrapper The robo rally launcher instance to use
|
||||
* @return A board active screen instance
|
||||
*/
|
||||
public synchronized CardChoiceScreen getCardChoiceScreen(RoboRallyWrapper roboRallyWrapper) {
|
||||
if (this.cardChoiceScreen == null) {
|
||||
this.cardChoiceScreen = new CardChoiceScreen(roboRallyWrapper);
|
||||
}
|
||||
return cardChoiceScreen;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user