Dessiner le monde 2d
#
Créer une tâche pour l’affichage temps-réel
#
public static void creerTaches(FrontendTasks tasks) {
tasks.taskGroup("AfficherPartie")
.waitsFor(created(DonneesVuePartie.class))
.contains(subTasks -> {
prochaineImagePartie(subTasks);
});
}
private static void prochaineImagePartie(FrontendTasks subTasks) {
subTasks.task("prochaineImagePartie")
.waitsFor(created(VuePartie.class))
.waitsFor(created(DonneesVuePartie.class))
.waitsFor(clock().nextTick())
.executes(inputs -> {
VuePartie vuePartie = inputs.get(created(VuePartie.class));
DonneesVuePartie donneesVuePartie = inputs.get(created(DonneesVuePartie.class));
donneesVuePartie.afficherMonde2d(vuePartie);
});
}
- la tâche
prochaineImagePartie sera appelée à chaque clock().nextTick()
- ce qui veut dire: le plus souvent possible
- (en JavaFx, typiquement 60 fois par secondes)
Afficher le monde 2d
#
public class DonneesVuePartie implements ViewData {
private MondePong2d mondePong2d = new MondePong2d();
//...
public void afficherSur(VuePartie vuePartie) {
vuePartie.afficherPong2d(mondePong2d);
}
public class VuePartie extends ViewFx {
@FXML
private CanvasPartie canvasPartie;
// ...
public void afficherPong2d(MondePong2d mondePong2d) {
mondePong2d.drawOn(canvasPartie);
}