Salut !
J'ai deux gros problèmes sur la création de mon jeu (j'essaie de faire une sorte de shoot em up) :
D'abord, j'ai voulu rajouter un bouton pause dans la classe GameScreen (en utilisant un inputHandler), qui est l'écran de mon jeu (c'est dans les classes screen que j'y met les boutons), sauf qu'après l'avoir rajouté, ma classe InputHandler (qui implémente InputProcessor et qui sert à bouger mon vaisseau à l'aide du clavier ou tirer) ne réagit plus, pourtant le jeu se met bien à jour, les vaisseaux ennemis vont vers moi comme prévus, les météorites apparaissent ...
Voici ma classe GameScreen :
http://pastebin.com/KTLiR4Ka
Ma classe InputHandler :
http://pastebin.com/38C1dn29
En enlevant la ligne Gdx.input.setInputProcessor(stage); ligne 49 de GameScreen, ça fonctionne mais le bouton ne réagit plus...
Autre problème : Quand les ennemis/météorites apparaissent, si je tire là où deux sont apparues au même endroit, mon jeu crash et m'envoie l'erreur :
Exception in thread "LWJGL Application" java.lang.ArrayIndexOutOfBoundsException: -1
at com.badlogic.gdx.utils.Array.removeIndex(Array.jav
a:231)
at com.badlogic.gdx.utils.Array$ArrayIterator.remove(
Array.java:469)
at com.shinigota.View.World.update(World.java:86)
at com.shinigota.Screens.GameScreen.render(GameScreen
.java:39)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.m
ainLoop(LwjglApplication.java:214)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1
.run(LwjglApplication.java:112)
Voici la classe World où je créer/met à jour mes entités :
http://pastebin.com/k8wJNee3
Je pense que c'est du à la manière dont je vérifie les collisions entre balles/météorites/ennemis, elles sont gérées entités par entités, sauf que certaines ont des hitboxes qui sont "fusionnées", du coup je tire, ça enlève deux météorites/vaisseaux au lieu d'un et du coup mes variables qui prennent la prochaine valeur du tableau se retrouvent en fait avec une valeur qui n'existe pas, et paf erreur... Sauf que j'ai l'impression que j'ai mal fait ça mais je vois pas comment je pourrais faire autrement !
J'ai cherché sur internet pour les deux problèmes, le premier ils parlaient d'utiliser un multiplexer pour gérer deux event en même temps, sauf que j'ai cru comprendre que ça s'utilisait seulement avec les InputProcessors, et pas avec les InputHandlers...
Pour la deuxième, j'ai pas trouvé grand chose ...
Bref, j'espère obtenir de l'aide, ça me bloque un peu !
Merci d'avance et bonne journée 