perso je gererais pas du tout plusieurs "images" du snake, j´écrirais plutot une fonction qui détermine quel pixel effacer et quel pixel afficher puisqe entre chaque image seul deux pixels seront diférents.
Et comment savoir quels sont ces deux fameux pixels ?
Héhé, tout va dependre de la représentation de ton serpent.
Essayes de t´imaginer les différents conteneurs qui pourraient convenir et de selectionner le plus souple pour les opérations que nous voulons faire.
Donc notre fonction:
updateFrame(SERPENT actuel, vecteur directeur)
{
// Determine à l´aide de ta représentation actuelle du serpent et de sa direction quels pixels vont etre modifiés
//p1 : à effacer
//p2 : à afficher
return(couple(p1,p2));
}
---
Bien sur quand ton joueur appuis sur une touche directionnelle, il change le vecteur directeur.
Donc :
main()
{
-Init
-Boucle de la mort :
tant qu´on doit pas quitter
-on look quels touche il a appuyé
- on modifie vecteur directeur
-on appel checkPomme()
-on appel updateframe()
- on appel DrawFrame() qui elle redessine en se basant sur les infos obtenus par updateFrame
-On quitte
}
Et c´est quoi checkPomme() ?
Bah c´est la fonction qui regardes si tu boufe une pomme à la position où tu est :
CheckPomme()
{
For (int i=0; i< TableauPomme_size; i++)
{
if MonSerpent[Position0] = TableauPomme[i];
return(i) // Tu sais quelle pomme il boufe
}
}
Donc une modife à faire ds updateFrame :
Enlever les pommes boufées : easy puisque la fonction appelé avant : CheckPomme() retourne quelle pomme a été boufée (si il y en a une qui a été mangée).
Plus qu´à la virer ds le tableau Pomme.
Ainsi, ds drawFrame tu dessinera ton tableau de pomme qui aura été mis à jour ds updateFrame().
Voila le cheminement que je ferais.
Bon après tu peux rajouter le fait que le serpent doit grandir.
Ce que j´ai écris est très sale mais représente une piste de reflexion faite "comme ca"
Au revoir