FadestLe 21/01/2008 à 09:24
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
Ca, c'est pour la gestion de la palette du sprite, c'est une table de correspondance entre les 16 couleurs du sprite (la position dans la chaine) et la couleur dans la palette système définie.
Si tu laisses la chaine telle quelle, ton sprite aura la même palette que la Lynx.
Mais par exemple, si tu remplaces la valeur 1 (qui serait pour l'exemple du rouge dans ta palette système) par 4 (qui serait du vert...), tout les éléments rouges de ton sprite seront verts. Si tu es défini avec transparence pour le sprite, c'est la valeur 0 qui indique quelle couleur sera transparente. Bien sur, tu peux avoir plusieurs fois le même indice (par exemple, avant que Tempi ne me fasse un sprite spécial pour le bouclier dans Space Shoot, je définissais tout le sprite en transparent sauf le contour, ça faisait un effet moins beau, mais suffisant pour montrer qu'on avait activé quelque chose).
Pour revenir aux collisions, c'est un peu plus complexe que ça, il faut tout d'abord définir un buffer spécial de collision (soit réserver 8192 pour ça) de la même manière que les écrans physiques et logiques. Puis au niveau de la déclaration de tes sprites dire qu'il faut gérer la collision pour ceux là (et leur accorder un numéro je crois). Ensuite après affichage, il faut tester tes sprites pour vérifier si l'indicateur 'collision' est activé.
J'avais fait quelques tests, mais je ne sais pas si je les ai encore. Je n'avais pas utilisé la collision dans Shoot ou tn (malgré quie j'aurais bien aimé) pour 2 raisons :
- ça bouffe 8ko de plus (ça laisse à peine plus de 30 ko au final et j'étais vraiment trop juste)
- la gestion de collision ne marchait pas sur mes listes de prites chainés, et je ne pouvais pas me passer de chainer mes sprites (ça ramerait trop).
Pour ton exemple, la 2° raison ne compte pas, je vais voir si je retrouve tes docs ou mon exemple.