Bonjour,
Je rencontre actuellement deux problèmes sur mon jeu:
-Lorsque j'utilise des ArrayList, et que je les parcours en faisant par exemple "for(int i = 0; i < mobList.size(); i++)", il arrive que quelquefois un objet ne soit pas "vu" par la boucle, et disparaisse pendant un très bref instant à l'écran.
Je suis sûr que ça vient de l'ArrayList ou de mon utilisation de celui-ci, car j'ai ce problème dès que j'en utilise un.
-Lorsque j’exécute mon jeu directement sous Eclipse (Run as Java Application), je vois que mon jeu tourne à 450 frames par seconde. Par contre quand je l'exporte, et que je lance le .jar, j'en ai 300 à 350 par seconde dans exactement les mêmes circonstances. J'ai réessayé plusieurs fois avec à chaque fois cette grosse différence. Vous savez à quoi ça peut être dû?
Merci d'avance
Pour ton premier point, il faudrait voir le code réalisé dans ta boucle.
Au déboté, tu modifies ton ArrayList dans la boucle, en faisant une suppression, et tu sautes des éléments.
Aucune idée pour le second point. Plusieurs hypothèses me viennent, mais sans plus...
Pour le premier, il nous faudrait le reste du code pour pouvoir t'aider, et une description un peu plus complete du probleme que tu rencontres. La tout ce que je peux te suggérer c'est de remplacer ton par par un foreach.
Pour le second, je lance une hypothèse au pif (me tapez pas trop fort) : il est possible qu'éclipse précharge certains éléments (comme des libs), ce qui pourrait accélérer les choses. Sinon il est également possible que tu n'utilises pas le meme JRE au sein d'Eclipse.
tout ce qu'il y a dans le for c'est "mobList.get(i).sprite.draw(batch);" et c'est le draw de LibGDX
Ah et d'ailleurs ça arrive n'importe quand à priori, pas que quand j'ajoute/supprime un élément à peu près au même moment.
Donc, ce qui arrive, c'est qu'il y a certains "draw" qui ne passent pas, c'est ça ?
ouais c'est ça, si je draw quelque chose hors d'une boucle d'arraylist j'ai jamais cette brève disparition.
Sinon le 2ème problème est probablement résolu, mon JRE dans eclipse est 64 bits tandis que celui qui lance les jar est le même en 32 bits, merci Darkangel
Je pense le premier problème est aussi résolu , en réalité c'est que les modifications apportées aux sprites contenus dans les arraylist qui font ça, rien à voir directement avec l'arraylist, donc ma faute , merci quand même à vous.