Bonjour et merci de ton retour.
C'est vu pour le Makefile et effectivement, ce n'était pas bon.
Pour ce qui est de la consommation CPU, je trouve aussi que c'est énorme et pourtant, j'ai déjà travaillé à la réduire. Je ne sais pas si j'y peut encore grand chose.
En fait, c'est dû presque essentiellement à la fonction SDL_BlitSurface. Le jeu tourne à 50fps et utilise 3 cartes superposées (sol + collision + air). C'est aussi pour ça que je voulais des retours sur la consommation du jeu sur diverses configs.
Ces cartes sont optimisées par mon éditeur de cartes. Par exemple, si une tuile de la couche collision est totalement opaque, la tuile de la couche de sol correspondante est remplacée par un tuile transparente. Lorsque le jeu détecte une tuile transparente sur l'une des cartes, il ne la traite pas (la quasi totalité des tuiles de la carte air sont transparentes). Côté FPS, c'est géré en dur par ça (là, ça évite de bouffer toutes les ressources CPU) :
do
{
tempsActuel = SDL_GetTicks();
SDL_Delay(4);
}
while(tempsActuel<tempsPrecedent+(950/fps));
tempsPrecedent = tempsActuel;
A titre de comparaison, chez moi, Zelda ROTH consomme 18% de CPU contre 28% pour le jeu que je développe. C'est sans doutes perfectible mais ce n'est si déconnant que ça quand même (enfin... je pense).
Je ne connaissait pas l'outil valgrind. Par contre, je n'arrive pas à reproduire les erreurs que tu me signale. Est-ce que tu pourrais me préciser comment tu y arrives ?
08:54:15 fred@obelix:~/Documents/Projets-code::blocks/ActionRPG$ valgrind ./ActionRPG --leak-check=full
==2653== HEAP SUMMARY:
==2653== in use at exit: 14,979,697 bytes in 3,851 blocks
==2653== total heap usage: 24,665 allocs, 20,814 frees, 193,198,936 bytes allocated
==2653==
==2653== LEAK SUMMARY:
==2653== definitely lost: 56 bytes in 5 blocks
==2653== indirectly lost: 2,847,380 bytes in 1,809 blocks
==2653== possibly lost: 12,085,491 bytes in 1,177 blocks
==2653== still reachable: 46,770 bytes in 860 blocks
==2653== suppressed: 0 bytes in 0 blocks
==2653== Rerun with --leak-check=full to see details of leaked memory
==2653==
==2653== For counts of detected and suppressed errors, rerun with: -v
==2653== Use --track-origins=yes to see where uninitialised values come from
==2653== ERROR SUMMARY: 2369 errors from 18 contexts (suppressed: 0 from 0)
Sinon, je suis un piètre programmeur Java à la base et autodidacte en C++ :p .