Skip to content

Commit

Permalink
Feat: Primer boceto de tablero.
Browse files Browse the repository at this point in the history
Co-authored-by: mariagalindez <mgalindez@fi.uba.ar>
Co-authored-by: SairBarreto <gbarreto@fi.uba.ar>
Co-authored-by: agus-germi <agerminario@fi.uba.ar>
  • Loading branch information
4 people committed Dec 4, 2023
1 parent 4a0c4e8 commit 8d6146e
Show file tree
Hide file tree
Showing 13 changed files with 154 additions and 17 deletions.
Binary file added fuentes/Cinzel-VariableFont_wght.ttf
Binary file not shown.
Binary file added imagenes/BobiBob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imagenes/FondoDeInicio.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imagenes/gladiadorFondo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imagenes/gladiadorMeme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imagenes/imagenCamino.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 25 additions & 5 deletions src/main/java/edu/fiuba/algo3/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,39 @@

import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.layout.HBox;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;

import javafx.geometry.Pos;

import javafx.scene.text.Font;
import javafx.stage.Stage;
import javafx.scene.control.Button;



/**
* JavaFX App
*/
public class App extends Application {

@Override
public void start(Stage stage) {
StackPane panelPrincipal = new StackPane();

Label imperioRomanoEtiqueta = new Label("Imperio Romano");
Label vamoAJugaEtiqueta = new Label("Vamo' a juga'?");

Label cantidadDeJugadoresEtiqueta = new Label("Elija el número de jugadores:");

//Font estiloLetra = Font.loadFont("file:" + System.getProperty("user.dir") + "/FuentesDeLetras/Cinzel-VariableFont_wght.ttf", 35);

//imperioRomanoEtiqueta.setFont(estiloLetra);
imperioRomanoEtiqueta.setStyle("-fx-text-fill: white");
vamoAJugaEtiqueta.setFont(new Font("Arial", 20));
vamoAJugaEtiqueta.setStyle("-fx-text-fill: white");
cantidadDeJugadoresEtiqueta.setFont(new Font("Arial", 20));
cantidadDeJugadoresEtiqueta.setStyle("-fx-text-fill: white");

Button boton2 = new BotonCantidadJugador(stage, "2");
Button boton3 = new BotonCantidadJugador(stage, "3");
Button boton4 = new BotonCantidadJugador(stage, "4");
Expand All @@ -44,7 +54,17 @@ public void start(Stage stage) {
contenedorPrincipal.setAlignment(Pos.CENTER);
contenedorPrincipal.setSpacing(10);

var scene = new Scene(contenedorPrincipal, 640, 480);
//Imagen de Fondo
Image imagenDeFondo = new Image("file:" + System.getProperty("user.dir") + "/imagenes/FondoDeInicio.jpg");
ImageView viewImagenFondo = new ImageView(imagenDeFondo);
viewImagenFondo.setFitHeight(480);
viewImagenFondo.setFitWidth(640);

panelPrincipal.getChildren().add(viewImagenFondo);
panelPrincipal.getChildren().add(contenedorPrincipal);
//

var scene = new Scene(panelPrincipal, 640, 480);

stage.setScene(scene);
stage.show();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import edu.fiuba.algo3.interfaz.vistas.botones.BotonCantidadJugador;
import edu.fiuba.algo3.interfaz.vistas.botones.BotonIngresarNombre;
import edu.fiuba.algo3.interfaz.vistas.botones.BotonIniciarPartida;
import edu.fiuba.algo3.interfaz.vistas.cuadroTexto.CuadroTextoIngreso;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
Expand All @@ -14,11 +15,11 @@
import javafx.scene.layout.VBox;
import javafx.scene.layout.HBox;
import javafx.geometry.Pos;
import javafx.scene.paint.Color;
import javafx.geometry.Insets;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.paint.Color;
import javafx.geometry.Insets;



Expand All @@ -37,15 +38,17 @@ private Scene crearEscenaIngreso() {
int cantidadLimite = this.boton.getCantidadLimite();
Label etiquetaIngreso = new Label("Ingrese un nombre:");
CuadroTextoIngreso cuadroTexto = new CuadroTextoIngreso();
BotonIniciarPartida botonInciarPartida = new BotonIniciarPartida(this.ventana, "Iniciar Partida");

Label etiquetaAviso = new Label("");
Button botonIngresarNombre = new BotonIngresarNombre("Ingresar", cuadroTexto, etiquetaAviso, cantidadLimite);
Button botonIngresarNombre = new BotonIngresarNombre("Ingresar", cuadroTexto, etiquetaAviso, cantidadLimite, botonInciarPartida);
HBox contenedorIngreso = new HBox(etiquetaIngreso, cuadroTexto, botonIngresarNombre);
contenedorIngreso.setAlignment(Pos.CENTER);
contenedorIngreso.setSpacing(3);

Button botonInciarPartida = new Button("Iniciar Partida");

//Button botonInciarPartida = new Button("Iniciar Partida");
/*
// PARTE ASTERIK
BackgroundFill normalFill = new BackgroundFill(Color.LIME, CornerRadii.EMPTY, Insets.EMPTY);
Background normalBackground = new Background(normalFill);
Expand All @@ -64,7 +67,7 @@ private Scene crearEscenaIngreso() {
botonInciarPartida.setBackground(normalBackground);
});
//

*/
VBox disposicionIngreso = new VBox(contenedorIngreso, etiquetaAviso, botonInciarPartida);
disposicionIngreso.setAlignment(Pos.CENTER);
disposicionIngreso.setSpacing(8);
Expand All @@ -74,7 +77,7 @@ private Scene crearEscenaIngreso() {
@Override
public void handle(ActionEvent evento) {
Scene escenaIngresoJugadores = crearEscenaIngreso();
//Scene escenaIngresoJugadores = new EscenaIngreso(this.boton);
this.ventana.setScene(escenaIngresoJugadores);

}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package edu.fiuba.algo3.interfaz.controladores;

import edu.fiuba.algo3.interfaz.vistas.botones.BotonIngresarNombre;
//import edu.fiuba.algo3.interfaz.vistas.escenas.EscenaIngreso;
import edu.fiuba.algo3.interfaz.vistas.botones.BotonIniciarPartida;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import edu.fiuba.algo3.interfaz.vistas.cuadroTexto.CuadroTextoIngreso;
Expand All @@ -13,12 +16,16 @@ public class ControladorIngresoNombre implements EventHandler<ActionEvent> {
private ArrayList<String> nombresJugadores;
private Label etiquetaAviso;
private int cantidadLimite;
private BotonIngresarNombre botonIngreso;
private BotonIniciarPartida botonIniciarPartida;

public ControladorIngresoNombre(CuadroTextoIngreso cuadroTexto, Label etiquetaAviso, int cantidadLimite) {
public ControladorIngresoNombre(CuadroTextoIngreso cuadroTexto, Label etiquetaAviso, int cantidadLimite, BotonIngresarNombre botonIngreso, BotonIniciarPartida botonIniciarPartida) {
this.cuadroTexto = cuadroTexto;
this.nombresJugadores = new ArrayList<>();
this.etiquetaAviso = etiquetaAviso;
this.cantidadLimite = cantidadLimite;
this.botonIngreso = botonIngreso;
this.botonIniciarPartida = botonIniciarPartida;
}

@Override
Expand All @@ -28,11 +35,11 @@ public void handle(ActionEvent evento) {
} else if ((this.cantidadLimite - 1) == this.nombresJugadores.size()) {
this.etiquetaAviso.setText("Se ha ingresado la cantidad máxima de jugadores. Es hora de jugar!");
this.cuadroTexto.setDisable(true);
//TODO: Sacar el boton "ingresar".
//TODO: agregar boto inicio partida. -> Mostramos otra escena o modificamos la escena actual de alguna manera?
this.botonIngreso.setDisable(true);
this.botonIniciarPartida.setDisable(false);
} else {
this.nombresJugadores.add(String.valueOf(this.cuadroTexto.getText().trim().equals("")));
this.etiquetaAviso.setText("");
this.etiquetaAviso.setText("\"" + this.cuadroTexto.getText() + "\"" + "ingresado con éxito!");
}

this.cuadroTexto.clear();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package edu.fiuba.algo3.interfaz.controladores;

import edu.fiuba.algo3.interfaz.vistas.escenas.VistaTablero;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class ControladorInicioPartida implements EventHandler<ActionEvent> {

private Stage ventana;

public ControladorInicioPartida(Stage ventana) {
this.ventana = ventana;
}

@Override
public void handle(ActionEvent evento) {
// TODO: Si no llegamos a poner un boceto escribimos: "Tablero en construccion ;)" CON BOB EL CONSTRUCTOR
VistaTablero tablero = new VistaTablero();

Scene escenaTablero = new Scene(tablero);

this.ventana.setScene(escenaTablero);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

public class BotonIngresarNombre extends Button {

public BotonIngresarNombre(String texto, CuadroTextoIngreso cuadroTexto, Label etiquetaAviso, int cantidadLimite) {
public BotonIngresarNombre(String texto, CuadroTextoIngreso cuadroTexto, Label etiquetaAviso, int cantidadLimite, BotonIniciarPartida botonIniciarPartida) {
super.setText(texto);

BackgroundFill normalFill = new BackgroundFill(Color.CYAN, CornerRadii.EMPTY, Insets.EMPTY);
Expand All @@ -31,6 +31,6 @@ public BotonIngresarNombre(String texto, CuadroTextoIngreso cuadroTexto, Label e
this.setBackground(normalBackground);
});

super.setOnAction(new ControladorIngresoNombre(cuadroTexto, etiquetaAviso, cantidadLimite));
super.setOnAction(new ControladorIngresoNombre(cuadroTexto, etiquetaAviso, cantidadLimite, this, botonIniciarPartida));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package edu.fiuba.algo3.interfaz.vistas.botones;

import javafx.scene.control.Button;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.geometry.Insets;
import javafx.scene.paint.Color;
import edu.fiuba.algo3.interfaz.controladores.ControladorInicioPartida;
import javafx.stage.Stage;


public class BotonIniciarPartida extends Button {

public BotonIniciarPartida(Stage ventana, String texto) {
super.setText(texto);

// PARTE ASTERIIIIIIKK <3
BackgroundFill normalFill = new BackgroundFill(Color.LIME, CornerRadii.EMPTY, Insets.EMPTY);
Background normalBackground = new Background(normalFill);

BackgroundFill hoveredFill = new BackgroundFill(Color.DARKGREEN, CornerRadii.EMPTY, Insets.EMPTY);
Background hoveredBackground = new Background(hoveredFill);

// Estilo del Boton
this.setBackground(normalBackground);
// Cuando entra el Mouse
this.setOnMouseEntered(event -> {
this.setBackground(hoveredBackground);
});
// Cuando sale el Mouse
this.setOnMouseExited(event -> {
this.setBackground(normalBackground);
});
//

this.setDisable(true);
setOnAction(new ControladorInicioPartida(ventana));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package edu.fiuba.algo3.interfaz.vistas.escenas;

import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;

public class VistaTablero extends GridPane {

private static final int TAMANO_CELDA = 50;

// public VistaTablero(Tablero tablero)? TODO: Pasarle tablero?
public VistaTablero() {
for (int fila = 0; fila < 4; fila++) {
for (int col = 0; col < 7; col++) {

StackPane panelCelda = this.crearPanelCelda("/imagenes/imagenCamino.png");

setConstraints(panelCelda, fila, col);

super.getChildren().add(panelCelda);
}
}
}

public StackPane crearPanelCelda(String rutaImagen) {
// "file:" + System.getProperty("user.dir") + "/imagenes/pasto.jpg" --> Ruta para imagen de pasto
// "file:" + System.getProperty("user.dir") + "/imagenes/imagenCamino.png" --> Ruta para imagen de camino
StackPane panelCelda = new StackPane();
Image imagenCamino = new Image("file:" + System.getProperty("user.dir") + rutaImagen);

ImageView viewImagenCamino = new ImageView(imagenCamino);
viewImagenCamino.setFitHeight(TAMANO_CELDA);
viewImagenCamino.setFitWidth(TAMANO_CELDA);

panelCelda.getChildren().add(viewImagenCamino);

return panelCelda;
}

}

0 comments on commit 8d6146e

Please sign in to comment.