Bonjour,
Comme dans mon précédent post, je suis toujours sur mon petit jeu de vaisseau. Actuellement le vaisseau (un carré bleu pour le moment ) se déplace bien. Seulement maintenant j'en suis à gerer les tirs ( shoots ) de celui ci. Et là j'ai un petit problème.
Le premier, c'est que durant le tir j'ai quelques soucis de lenteur. Comment je geres le tir ? Si on appui sur Espace, j'émet un signal shootAsked() qui va demander le tir à ma classe Weapon. Et là je lance un QTimer qui tourne, à chaque timeout() j'émet un signal qui envoie sur un slot qui lui incrémente un compteur, recalcule la nouvelle position du projectil et réactualise l'affichage du QRect ( le shoot ) via update(QRegion).
Je pense que cette méthode ne doit pas être la bonne vu comme ça rame lors du tir. Si quelqu'un a une autre facon de voir le truc, j'ai pensé à lancer un thread à la demande du shoot, mais le soucis c'est que si je tires plusieurs fois, je lance plein de threads du coup. Hors avec cette methode, je pensais juste modifier mes methodes/slots/signaux en ajoutant un indice qui sait quel projectil on met à jour. En gros l'idée c'était qu'au shoot on fait un new Projectil(); à l'impact on fait un delete le_projectil;. Bien entendu, il faudrait une gestion dynamique des tableaux du coup, pour pouvoir faire varier le nombre de tirs à l'écran.
Voilà, j'ai un peu avancé l'état de ma reflexion en plus du probleme actuel, ça permettra éventuellement à mes sauveurs de me rediriger si je fais fausse route.
Askerat.
Partager