Je sais que les singletons sont mauvais, mon ancien moteur de jeu utilisait un objet 'Game' singleton qui gère tout, de la conservation de toutes les données à la boucle de jeu réelle. Maintenant j'en fais un nouveau.
Le problème est que, pour dessiner quelque chose en SFML, vous utilisez window.draw(sprite)
où window est un sf::RenderWindow
. Il y a 2 options que je vois ici:
- Créer un objet Game singleton que chaque entité du jeu récupère (ce que j'ai utilisé auparavant)
- Faites-en le constructeur des entités:
Entity(x, y, window, view, ...etc)
(c'est juste ridicule et ennuyeux)
Quelle serait la bonne façon de le faire tout en gardant le constructeur d'une entité à seulement x et y?
Je pourrais essayer de garder une trace de tout ce que je fais dans la boucle de jeu principale et dessiner manuellement leur sprite dans la boucle de jeu, mais cela semble aussi compliqué, et je veux également un contrôle total absolu sur une fonction de dessin entière pour l'entité.