mirror of
https://github.com/inf112-v20/Fiasko.git
synced 2025-01-31 23:29:36 +01:00
Legger til mulighet for å velge debuggingbrettet
Setter viewport på brettvisning til de faktiske dimensjonene til brettet Oppdaterer informasjon om debug knapp og spillstatus i README
This commit is contained in:
parent
1d03e24b71
commit
4e44d44be7
12
README.md
12
README.md
@ -6,17 +6,19 @@ vil vi gå over til en fase der målet blir å implementere ting som er gøy, me
|
|||||||
Alle regler er hentet fra 2005 utgaven av spillguiden fra Wizards of the Coast, Inc.
|
Alle regler er hentet fra 2005 utgaven av spillguiden fra Wizards of the Coast, Inc.
|
||||||
|
|
||||||
## Spillstatus
|
## Spillstatus
|
||||||
Spillet er nå i en tidlig alpha. Det er antakelig mulig å spille spillet, men ukjente bugs kan forekomme.
|
Spillet er nå i sen alpha. Det fungerer og virker relativt stabilt, men det kan fortsatt forekomme mange endringer,
|
||||||
|
og nye bugs kan bli introdusert.
|
||||||
|
|
||||||
## Knapper og kontrollmekanismer
|
## Knapper og kontrollmekanismer
|
||||||
### Knapper
|
### Knapper
|
||||||
- Q: Tilbakestiller kamera og kamerarotasjon
|
- Q: Tilbakestiller kamera og kamerarotasjon på brettvisningsskjermen
|
||||||
- R: Roterer kameraet
|
- R: Roterer kameraet på brettvisningsskjermen
|
||||||
- TAB: Bytter mellom kortvelging og brettvisning når en holder på med å velge kort
|
- TAB: Bytter mellom kortvelging og brettvisning når en holder på med å velge kort
|
||||||
|
- HOME: På lobby skjermen lar denne knappen deg velge et brett spesifikt laget for debugging
|
||||||
|
|
||||||
### Andre egenskaper ved brukergrensesnittet
|
### Andre egenskaper ved brukergrensesnittet
|
||||||
- Rullehjulet vil forstørre og forminske spillbrettet
|
- Rullehjulet vil forstørre og forminske spillbrettet på brettvisningsskjermen
|
||||||
- Spillbrettet kan flyttes ved å holde inne venstre musetast og bevege musen i en retning
|
- Spillbrettet kan flyttes ved å holde inne venstre musetast og bevege musen i en retning på brettvisningsskjermen
|
||||||
|
|
||||||
## Bygging og kompilering
|
## Bygging og kompilering
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ import java.util.List;
|
|||||||
public class BoardActiveScreen extends InteractiveScreen {
|
public class BoardActiveScreen extends InteractiveScreen {
|
||||||
private final RoboRallyWrapper roboRallyWrapper;
|
private final RoboRallyWrapper roboRallyWrapper;
|
||||||
private final int tileDimensions = 64;
|
private final int tileDimensions = 64;
|
||||||
private final int viewPortWidth = 12 * tileDimensions;
|
private final int viewPortWidth;
|
||||||
private final int viewPortHeight = 12 * tileDimensions;
|
private final int viewPortHeight;
|
||||||
private float cameraZoom = 1;
|
private float cameraZoom = 1;
|
||||||
private int cameraX = 0;
|
private int cameraX = 0;
|
||||||
private int cameraY = 0;
|
private int cameraY = 0;
|
||||||
@ -42,6 +42,9 @@ public class BoardActiveScreen extends InteractiveScreen {
|
|||||||
public BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) {
|
public BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) {
|
||||||
this.roboRallyWrapper = roboRallyWrapper;
|
this.roboRallyWrapper = roboRallyWrapper;
|
||||||
|
|
||||||
|
viewPortWidth = roboRallyWrapper.roboRallyGame.getWidth() * tileDimensions;
|
||||||
|
viewPortHeight = roboRallyWrapper.roboRallyGame.getHeight() * tileDimensions;
|
||||||
|
|
||||||
camera.setToOrtho(false, viewPortWidth, viewPortHeight);
|
camera.setToOrtho(false, viewPortWidth, viewPortHeight);
|
||||||
camera.position.set(viewPortWidth / 2f, viewPortHeight / 2f, 0);
|
camera.position.set(viewPortWidth / 2f, viewPortHeight / 2f, 0);
|
||||||
viewport = new ExtendViewport(viewPortWidth, viewPortHeight, camera);
|
viewport = new ExtendViewport(viewPortWidth, viewPortHeight, camera);
|
||||||
@ -139,7 +142,7 @@ public class BoardActiveScreen extends InteractiveScreen {
|
|||||||
@Override
|
@Override
|
||||||
public boolean scrolled(int amount) {
|
public boolean scrolled(int amount) {
|
||||||
if (amount < 0 && cameraZoom > 0.3 || amount > 0 && cameraZoom < 3) {
|
if (amount < 0 && cameraZoom > 0.3 || amount > 0 && cameraZoom < 3) {
|
||||||
cameraZoom += 0.2 * amount;
|
cameraZoom += 0.1 * amount;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -150,8 +153,8 @@ public class BoardActiveScreen extends InteractiveScreen {
|
|||||||
private void resetCamera() {
|
private void resetCamera() {
|
||||||
camera.up.x = 0;
|
camera.up.x = 0;
|
||||||
camera.up.y = 1;
|
camera.up.y = 1;
|
||||||
cameraZoom = 1.4f;
|
cameraZoom = 1;
|
||||||
camera.position.set(viewPortWidth / 2f + 128, viewPortHeight / 2f + 128, 0);
|
camera.position.set(viewPortWidth / 1.5f, viewPortHeight / 2f, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -172,6 +175,7 @@ public class BoardActiveScreen extends InteractiveScreen {
|
|||||||
object.flipX(), object.flipY());
|
object.flipX(), object.flipY());
|
||||||
}
|
}
|
||||||
int index = 1;
|
int index = 1;
|
||||||
|
//Draws all participating players to the right of the board
|
||||||
for (Player player : roboRallyWrapper.roboRallyGame.getPlayers()) {
|
for (Player player : roboRallyWrapper.roboRallyGame.getPlayers()) {
|
||||||
String playerName = player.getName();
|
String playerName = player.getName();
|
||||||
Robot robot = getPlayersRobot(player.getRobotID());
|
Robot robot = getPlayersRobot(player.getRobotID());
|
||||||
@ -179,20 +183,22 @@ public class BoardActiveScreen extends InteractiveScreen {
|
|||||||
throw new IllegalArgumentException("The robot belonging to player " + playerName +
|
throw new IllegalArgumentException("The robot belonging to player " + playerName +
|
||||||
" does not exist on the board.");
|
" does not exist on the board.");
|
||||||
}
|
}
|
||||||
roboRallyWrapper.font.draw(batch, playerName, viewPortWidth, 128 * index);
|
roboRallyWrapper.font.getData().setScale(tileDimensions / 44);
|
||||||
|
roboRallyWrapper.font.draw(batch, playerName, viewPortWidth, 2 * tileDimensions * index);
|
||||||
roboRallyWrapper.font.draw(batch, "DMG: " + robot.getDamageTaken() + " LV: " + robot.getAmountOfLives(),
|
roboRallyWrapper.font.draw(batch, "DMG: " + robot.getDamageTaken() + " LV: " + robot.getAmountOfLives(),
|
||||||
viewPortWidth, 96 + 128 * (index - 1));
|
viewPortWidth, 1.5f * tileDimensions + 2 * tileDimensions * (index - 1));
|
||||||
int lastFlagVisited = robot.getLastFlagVisited();
|
int lastFlagVisited = robot.getLastFlagVisited();
|
||||||
if (lastFlagVisited > 0) {
|
if (lastFlagVisited > 0) {
|
||||||
TileType flagType = TileType.getTileTypeFromID(robot.getLastFlagVisited() + 16);
|
TileType flagType = TileType.getTileTypeFromID(robot.getLastFlagVisited() + 16);
|
||||||
TextureRegion flagRegion = TextureConverterUtil.convertElement(new Tile(flagType, Direction.NORTH));
|
TextureRegion flagRegion = TextureConverterUtil.convertElement(new Tile(flagType, Direction.NORTH));
|
||||||
batch.draw(flagRegion.getTexture(), viewPortWidth + 64, 128 * (index - 1), 64 / 2,
|
batch.draw(flagRegion.getTexture(), viewPortWidth + tileDimensions, 2 * tileDimensions *
|
||||||
64 / 2, 64, 64, 1, 1, 0, flagRegion.getRegionX(),
|
(index - 1), tileDimensions / 2, tileDimensions / 2, tileDimensions,
|
||||||
|
tileDimensions, 1, 1, 0, flagRegion.getRegionX(),
|
||||||
flagRegion.getRegionY(), flagRegion.getRegionWidth(), flagRegion.getRegionWidth(),
|
flagRegion.getRegionY(), flagRegion.getRegionWidth(), flagRegion.getRegionWidth(),
|
||||||
false, false);
|
false, false);
|
||||||
}
|
}
|
||||||
TextureRegion robotTexture = TextureConverterUtil.convertElement(player.getRobotID());
|
TextureRegion robotTexture = TextureConverterUtil.convertElement(player.getRobotID());
|
||||||
batch.draw(robotTexture, viewPortWidth, 128 * (index - 1));
|
batch.draw(robotTexture, viewPortWidth, 2 * tileDimensions * (index - 1), tileDimensions, tileDimensions);
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package inf112.fiasko.roborally.gamewrapper.screens;
|
package inf112.fiasko.roborally.gamewrapper.screens;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Input;
|
||||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox;
|
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.badlogic.gdx.utils.viewport.FitViewport;
|
import com.badlogic.gdx.utils.viewport.FitViewport;
|
||||||
import inf112.fiasko.roborally.gamewrapper.RoboRallyWrapper;
|
import inf112.fiasko.roborally.gamewrapper.RoboRallyWrapper;
|
||||||
import inf112.fiasko.roborally.gamewrapper.SimpleButton;
|
import inf112.fiasko.roborally.gamewrapper.SimpleButton;
|
||||||
@ -21,8 +23,9 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* This screen allows the host to wait for players to join
|
* This screen allows the host to wait for players to join
|
||||||
*/
|
*/
|
||||||
public class LobbyScreen extends AbstractScreen {
|
public class LobbyScreen extends InteractiveScreen {
|
||||||
private final RoboRallyWrapper roboRallyWrapper;
|
private final RoboRallyWrapper roboRallyWrapper;
|
||||||
|
final SelectBox<String> selectBox;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new lobby screen
|
* Instantiates a new lobby screen
|
||||||
@ -43,7 +46,7 @@ public class LobbyScreen extends AbstractScreen {
|
|||||||
|
|
||||||
Dialog dialog = new Dialog("Setting", skin);
|
Dialog dialog = new Dialog("Setting", skin);
|
||||||
|
|
||||||
final SelectBox<String> selectBox = new SelectBox<>(skin);
|
selectBox = new SelectBox<>(skin);
|
||||||
selectBox.setItems("Dizzy_Dash", "Checkmate", "Risky_Exchange");
|
selectBox.setItems("Dizzy_Dash", "Checkmate", "Risky_Exchange");
|
||||||
selectBox.setPosition(Gdx.graphics.getWidth() / 2f - 100, Gdx.graphics.getHeight() / 2f - 100);
|
selectBox.setPosition(Gdx.graphics.getWidth() / 2f - 100, Gdx.graphics.getHeight() / 2f - 100);
|
||||||
selectBox.setSize(200, 50);
|
selectBox.setSize(200, 50);
|
||||||
@ -76,6 +79,27 @@ public class LobbyScreen extends AbstractScreen {
|
|||||||
stage.setViewport(viewport);
|
stage.setViewport(viewport);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
super.show();
|
||||||
|
inputMultiplexer.addProcessor(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyUp(int keyCode) {
|
||||||
|
if (keyCode == Input.Keys.HOME) {
|
||||||
|
Array<String> items = selectBox.getItems();
|
||||||
|
String testBoard = "all_tiles_test_board";
|
||||||
|
if (!items.contains(testBoard, true)) {
|
||||||
|
items.add(testBoard);
|
||||||
|
selectBox.setItems(items);
|
||||||
|
selectBox.setSelected(testBoard);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(float delta) {
|
public void render(float delta) {
|
||||||
super.render(delta);
|
super.render(delta);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user