Java - Ayuda con ejercicio básico de JavaFx y SceneBuider

 
Vista:
sin imagen de perfil

Ayuda con ejercicio básico de JavaFx y SceneBuider

Publicado por Gerardo (2 intervenciones) el 05/05/2023 18:12:33
Hola que tal, me doy una vuelta en éste foto para saber si alguien con experiencia puede ayudarme, estoy haciendo un pequeño proyecto escolar de un videjuego pero me atore en algo que siento que está frente a mi pero no logro verlo, pido disculpas por eso, sucede que estoy trabajando con Scenebuilder, mi objetivo es usar un Pane simple y pnerle un canvas para ahí dibujar tódos mis personajes, fondo y lo que le vaya a poner, pero por alguna razón con el código que me proporcionó el profesor a mi no mi dibuja nada, ni los rectángulos que detectan las colisiones, ni las imágenes en mi carpeta de recursos del proyecto

Tengo 2 clases, el controlador y la clase del escenario, las dejo para que la gente la pueda analizar y si me puede ayudar a solicionar mi problema :) gracias.

Clase Controlador:

public class EscenarioController {
private Scene escena;
private GraphicsContext graficos;
private Zombie zombie;
private Escenario escenario;
private Jugador jugador;

@FXML
private Canvas canvas;

@FXML
private Pane panel;

public void iniciar() {
componentesIniciar();
pintar();
eventosTeclado();
ciclo();
}

private void componentesIniciar() {
graficos = canvas.getGraphicsContext2D();

escenario=new Escenario(0, 0,"/fes/aragon/resource/grass.png", 5);
jugador=new Jugador(20,255,"/fes/aragon/resource/sangre.png",2);
zombie = new Zombie(50, 50, "/fes/aragon/resource/sangre2.png", 1);

}


public void ciclo() {
long tiempoInicio = System.nanoTime();
AnimationTimer tiempo = new AnimationTimer() {
@Override
public void handle(long tiempoActual) {
double t = (tiempoActual - tiempoInicio) / 1000000000.0;
// personajeA.setTiempo(t);
calculosLogica();
pintar();

}

};
tiempo.start();
}

private void calculosLogica() {
this.escenario.logicaCalculos();
this.zombie.logicaCalculos();
this.jugador.logicaCalculos();
}

private void pintar() {
this.escenario.pintar(graficos);
this.zombie.pintar(graficos);
this.jugador.pintar(graficos);
}

public void setEscena(Scene escena) {
this.escena = escena;

}
private void eventosTeclado() {
escena.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent arg0) {
// TODO Auto-generated method stub
jugador.teclado(arg0,true);

}
});
escena.setOnKeyReleased(new EventHandler<KeyEvent>() {

@Override
public void handle(KeyEvent arg0) {
// TODO Auto-generated method stub
jugador.teclado(arg0,false);

}

});

}
}

Clase Escenario:

public class Escenario extends ComponentesJuego {
private Image imagen;

public Escenario(int x, int y, String imagen, int velocidad) {
super(x, y, imagen, 0);
this.imagen = new Image(imagen);
}


@Override
public void pintar(GraphicsContext graficos) {
// TODO Auto-generated method stub
System.out.println("Dibujando imagen en (" + x + ", " + y + ")");
graficos.drawImage(imagen, x, y);


}

@Override
public void teclado(KeyEvent evento, boolean presiona) {
// TODO Auto-generated method stub

}

@Override
public void raton(KeyEvent evento) {

}

@Override
public void logicaCalculos() {


}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder