vince Le 16/07/2003 à 09:54 la fonction de matthias domin est trop généraliste pour ce que tu comptes faire je pense...
le plus simple serait en effet d'utiliser des sprites (définis en taille, après c toi qui voit)
tu prédéfinis les sprites des chiffres 0 à F
ensuite, tu te fais une liste chainée de scb avec pour chacune d'elle scbdata qui pointe sur le sprite 0
enfin tu n'as plus qu'à changerla valeur de scbdata du Nème digit quand on marque des points...
en résumé tu garde en variable globale la valeur de 5 digit (exemple pour un score de 00000 à FFFFF)
et au moment de l'afficher tu procèdes par masque :
(valeurHexa && 0x0000F) te donnera la valeur du premier digit
( (valeurHexa && 0x000F0) / 0x00010 ) te donnera la valeur du second digit
( (valeurHexa && 0x00F00) / 0x00100 ) te donnera la valeur du second digit
( (valeurHexa && 0x0F000) / 0x01000 ) te donnera la valeur du second digit
( (valeurHexa && 0xF0000) / 0x10000 ) te donnera la valeur du second digit
après ça tu tu n'as plus qu'a sélectionner le sprite qui va bien en fonction du tableau

Ce n'est pas && mais & plutôt non ?
Ensuite, c'est sûrement plus rapide de faire un décalage plutôt qu'une division :
( (valeurHexa & 0x000F0) >> 4 ).
vince Le 16/07/2003 à 11:28 le décalage n'est, je crois, pas supporté par le compilateur de BS42
vince Le 16/07/2003 à 15:20 par contre pour le simple &, je me suis en effet trompé, le double && sert aux tests conditionnels
DGY Le 19/07/2003 à 23:12 Oki, j'ai compris la théorie du masquage mais je n'ai pas appliqué ça puisque je voulais compter simplement de 0 à 9. J'essayerai toutefois plus tard pour bien comprendre.
J'ai une autre question : j'affiche bien mes sprites de chiffres, mais je voudrais avoir le fond transparent, comment faire? C'est avec la palette?
Previously known as Damdam
vince Le 19/07/2003 à 23:23 ouais la palette par défaut c'est le 0 pour la couleur transparente.