[C] Aide projet jeu vidéo

Aide projet jeu vidéo [C] - C - Programmation

Marsh Posté le 28-05-2015 à 16:50:26    

Bien le bonjour/bonsoir !  
 
Je viens à vous car j'ai un problème avec mon jeu vidéo que je crée dans le cadre de mes études.
On dispose d'un vaisseau, qui tire sur des astéroïdes à l'aide de missiles.
Quand le missile touche un gros, il se divise en 2 moyens (j'ai les sprites), et un moyen en 2 petits.
 
Donc quand il y a collision, j'utilise une fonction pour enlever l'astéroïde de ma liste, afin qu'il disparaisse de l'écran. Mais cette fonction ne marche pas très bien si l'astéroïde est en premier de la liste je crois.
Voici ma fonction :  
 

Code :
  1. object_list delete_object(object * O, object_list L)
  2. {
  3.   object_list tmp = L;
  4.   object_list previous = L;
  5.   if (object_list_head(previous) == O)
  6.     {
  7.       L = object_list_tail(previous);
  8.       free(previous);
  9.       return L;
  10.     }
  11.   tmp = object_list_tail(previous);
  12.   while (tmp != NULL)
  13.     {
  14.       if (object_list_head(tmp) == O)
  15. {
  16.   previous->next = tmp->next;
  17.   free(tmp);
  18.   return L;
  19. }
  20.       previous = tmp;
  21.       tmp = object_list_tail(tmp);
  22.     }
  23.  
  24.   return L;
  25.  
  26. }


 
object_list_head retourne le premier de la liste, et object_list_tail retourne le reste de la liste.
Donc ma structure object_list contient : un objet O, et une object_list L.
 
Merci d'avance de vos réponses!
 
Cordialement,  
 
Lanslow

Reply

Marsh Posté le 28-05-2015 à 16:50:26   

Reply

Marsh Posté le 28-05-2015 à 16:51:18    

Les accolades ne sont pas indentées dans le code, mais dans mon fichier c elles le sont.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed