Théorie: dessiner sur un ResizableWorld2dCanvasFx #
Observer un monde2d via un viewport #
- On veut dessiner notre jeu sur un monde2d
-
L’affichage sera échelonnée (agrandie ou rapetissée)
-
Avec un viewport, on est pas obligé d’afficher le monde2d en entier:
Dessiner sur différentes régions #
- Voici les différentes régions:
- Le plus courant est de dessiner sur le monde2d:
drawOnWorld(gc -> {
// pour un jeu, on va surtout dessiner comme ça
});
- On peut dessiner sur le viewport comme suit:
drawOnViewport(gc -> {
// typiquement on veut déplacer
// le viewport plutôt que
// dessiner dessus
});
- On peut dessiner sur le viewscreen comme suit:
drawOnViewscreen(gc -> {
// pointage ou HUD ici
});
- Finalement, on peut dessiner directement sur le canvas:
drawOnCanvas(gc -> {
// afficher le FPS ici?
});
En action #
- Quand la zone orange se déplace, c’est que le
viewport
est déplacé- (le monde2d este inchangé)
- Quand la zone orange grandit, c’est que le
viewport
est rapetissé- (le monde2d reste inchangé)
- Quand l’image est déplacée, est elle déplacée à l’intérieur du monde2d
- Quand la fenêtre grandit, le
canvas
grandit (et du même coup leviewscreen
)- (le
world2d
et leviewport
restent inchangés)
- (le