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 :
object_list delete_object(object * O, object_list L)
{
object_list tmp = L;
object_list previous = L;
if (object_list_head(previous) == O)
{
L = object_list_tail(previous);
free(previous);
return L;
}
tmp = object_list_tail(previous);
while (tmp != NULL)
{
if (object_list_head(tmp) == O)
{
previous->next = tmp->next;
free(tmp);
return L;
}
previous = tmp;
tmp = object_list_tail(tmp);
}
return L;
}
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.
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 :
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