Bonjour
Ca fait pas mal de temps que je connais la SFML et j'ai voulu essayé la version 2 rapidement.
J'utilise alors pysfml mais le problème ne vient pas du binding je pense.
J'ai voulu faire un jeu 2D en vu de dessus. J'ai fini presque fini la partie navigation et lors de mes recherches de sprites, je trouvais souvent des images entières de maps à afficher. Au début, j'utiliser la méthode de tile mapping puis je me suis retrouver rapidement à souffrir au niveau des FPS (c'est exagéré mais je voyais bien que je perdais un peu de vitesse avec des maps de plus en plus grandes). J'ai pensais que cela venait de python qui pouvait être un poil lent et ne pouvait pas tenir la cadence maximal.
J'ai eu un doute lorsque ma recherche sur internet ne montrait pas vraiment de problème de lenteur. Je me suis donc dit que c'est simplement mon code qui était pourri.
J'ai donc refait une nouvelle architecture en plusieurs threads (un pour l'affichage, un pour le son et un pour les évènements). J'affichais dès le début des maps entières trouvé sur internet.
Cette fois-ci je n'ai pas eu de problème de lenteur.
J'ai alors voulu aller plus loin de me faisant un editeur de niveau car je voulais d'autres maps. Je suis donc repartis sur le tile mapping et pour eviter de ralentir trop l'affichage, je précompilais les maps. En effet, j'ai plusieurs couches d'affichages et ma précompilations permettait de superposer tous les sprites et de recréer un tileset + map avec les nouveaux sprites créer. Donc je n'avais que un seule sprite a afficher par case.
Je lance le programme et je constate qu'il y a à nouveau des ralentissements. Je modifie mon code de précompilation de map pour qu'elle génère l'image entière de la map. Cette fois-ci, il n'y a pas de ralentissement.
Je pense que même si le code est pourri à la base, le changement entre les deux versions montrent bien un problème. En effet, les seules bouts de code qui changent sont exécuté pendant la précompilation et pendant l'affichage. Et celui de l'affichage transforme simplement un app.draw(world) en app.draw(world[x, y]) dans une boucle.
Donc je voulais savoir si il y avait déjà eu des problèmes de ralentissement pareil et ce que vous pensez du problème. Je pensais que le tile mapping permettait justement d'être plus rapide mais je remarque le contraire.