Bon, j'ai corrigé la ligne :
write_sprite_data(60, 60, 15, 255, 1, 1, (const PTILEMAP)&chunli[animation * 3]);
...
/* Ensuit il suffit de faire varier la variable animation pour animer le sprite */
if(!(vbl_count%6)) { /* toutes les 6 vbl */
if(animation < 3) /* 4 étapes d'animation */
animation = animation + 1;
else
animation = 0;
}
Résultat : il affiche 2 tiles sur les 4 de mon sprite et il affiche aussi le tile haut/gauche du sprite ballon (mouais) .
Il faut que je comprenne cette variable animation.
Edit :
write_sprite_data(60, 60, 15, 255, 1, 1, (const PTILEMAP)&chunli[animation * 8]);
J'ai mis 8 à la place du 3, car je pense que ça lui signale qu'il faut lire 8 px par 8 px (??). Je n'ai plus le tile de ballon qui apparait, mais je n'ai que l'image 1 sur les 4 qui apparait :

edit :
CeL, ici, tu mets qu'il y a 9 animations dans ton sprite chunli :
write_sprite_data(60, 120, 15, 255, 8, 8, (const PTILEMAP)&chunli[animation * 8]);
/* Ensuit il suffit de faire varier la variable animation pour animer le sprite */
//if(animation < 9) /* 9 étapes d'animation */
// animation = animation + 1;
//else
// animation = 0;
alors que j'en compte 10 :

Tu comptes comment : de 0 à 9 (10 images), ou il y en a une qui saute ?
Ou alors, une étape d'animation, c'est entre les images de chunli, soit 9 étapes (les traits jaunes quoi).
Ça ne change rien à mon problème aussi.
J'ai ralenti l'affichage pour espérer trouver quelque chose : j'ai l'impression que seul la première "image" du sprite s'affiche, puis j'ai un tile noir (carré noir complet), puis 2 "temps" de vide, puis ça recommence.
Ça vient peut-etre de la palette. Faut-il précisemment 16 couleurs, ou on peut en avoir moins ? Ici, il y en a 4 avec la transparente.
J'ai mis mon sprite sur le n°24 pour voir si ce n'était pas un chevauchement (??) de sprite, mais ce n'est pas ça.
Gniiiiiiiiiiiiiiiiiiiiii j'ai trouvé : c'est pas 8 qu'il faut mettre ici, mais 1, car mon sprite fait 1 tile de côté :
write_sprite_data(60, 60, 15, 255, 1, 1, (const PTILEMAP)&chunli[animation * 1]);
Le 1 correspond à la largeur en tile du sprite animé.
write_sprite_data(60, 60, 15, 255, 1, 1, (const PTILEMAP)&chunli[animation * 3]);
...
/* Ensuit il suffit de faire varier la variable animation pour animer le sprite */
if(!(vbl_count%6)) { /* toutes les 6 vbl */
if(animation < 3) /* 4 étapes d'animation */
animation = animation + 1;
else
animation = 0;
}
Résultat : il affiche 2 tiles sur les 4 de mon sprite et il affiche aussi le tile haut/gauche du sprite ballon (mouais) .
Il faut que je comprenne cette variable animation.
Edit :
write_sprite_data(60, 60, 15, 255, 1, 1, (const PTILEMAP)&chunli[animation * 8]);
J'ai mis 8 à la place du 3, car je pense que ça lui signale qu'il faut lire 8 px par 8 px (??). Je n'ai plus le tile de ballon qui apparait, mais je n'ai que l'image 1 sur les 4 qui apparait :

edit :
CeL, ici, tu mets qu'il y a 9 animations dans ton sprite chunli :
write_sprite_data(60, 120, 15, 255, 8, 8, (const PTILEMAP)&chunli[animation * 8]);
/* Ensuit il suffit de faire varier la variable animation pour animer le sprite */
//if(animation < 9) /* 9 étapes d'animation */
// animation = animation + 1;
//else
// animation = 0;
alors que j'en compte 10 :

Tu comptes comment : de 0 à 9 (10 images), ou il y en a une qui saute ?
Ou alors, une étape d'animation, c'est entre les images de chunli, soit 9 étapes (les traits jaunes quoi).
Ça ne change rien à mon problème aussi.
J'ai ralenti l'affichage pour espérer trouver quelque chose : j'ai l'impression que seul la première "image" du sprite s'affiche, puis j'ai un tile noir (carré noir complet), puis 2 "temps" de vide, puis ça recommence.
Ça vient peut-etre de la palette. Faut-il précisemment 16 couleurs, ou on peut en avoir moins ? Ici, il y en a 4 avec la transparente.
J'ai mis mon sprite sur le n°24 pour voir si ce n'était pas un chevauchement (??) de sprite, mais ce n'est pas ça.
Gniiiiiiiiiiiiiiiiiiiiii j'ai trouvé : c'est pas 8 qu'il faut mettre ici, mais 1, car mon sprite fait 1 tile de côté :
write_sprite_data(60, 60, 15, 255, 1, 1, (const PTILEMAP)&chunli[animation * 1]);
Le 1 correspond à la largeur en tile du sprite animé.




.

)

.




J'suis mort de rire, car je ne vois pas de quoi tu parles
Je suis consternant
(---> oscar du meilleur topiqueur 2012
Commentaire