Bon, je m'étais trompé dans mon premier post, en fait il faut faire ça : unsigned short image[]={255,40,50,..........,0xDF}; et là où il y a des points de suspension, tu mets ton image (suite de 1 et de 0 correspondant à l'état des pixels).
Mais il vaut mieux que tu comprennes vraiment comme ça fonctionne, comme ça tu pourras le refaire pour n'importe quelle image. De toute façon, tu auras besoin de comprendre pour pouvoir remplir ton tableau avec les 1 et les 0 qui correspondent à ton image.
Alors, par exemple, une image de 10 colonnes par 5 lignes entièrement noire correspondra à ça dans la RAM :
+----------+------+------+------+------+------+------+------+------+...+------+------+------+
|Adresse : | 89B5 | 89B6 | 89B7 | 89B8 | 89B9 | 89C0 | 89C1 | 89C2 |...| 89C7 | 89C8 | 89C9 |
+----------+------+------+------+------+------+------+------+------+...+------+------+------+
|Contenu : | 0000 | 0015 | 0005 | 0010 | 0255 | 0192 | 0255 | 0192 |...| 0255 | 0192 | 0223 |
+----------+------+------+------+------+------+------+------+------+...+------+------+------+
|En héxa : | 0x00 | 0x0F | 0x05 | 0x0A | 0xFF | 0xC0 | 0xFF | 0xC0 |...| 0xFF | 0xC0 | 0xDF |
+----------+------+------+------+------+------+------+------+------+...+------+------+------+
Voilà.
Les adresses commencent à une valeur que j'ai prise au pif.
Donc, sur les 2 premiers octets, on a 0x000F, soit 15, la taille du sprite (16/8*5+2+2+1, en octets)
Sur les 2 suivants : 0x0005, soit le nombre de lignes (en pixels)
Les 2 suivants : 0x000A, soit 10, le nombre de colonnes (en pixels)
Le suivant : 0xFF, ce qui correspond à une ligne de 8 pixels noirs.
Le suivants : 0xC0, ce qui correspond à une ligne de 8 pixels, dont seuls les 2 premiers sont noirs.
Pourquoi le tableau n'est-il pas rempli que 0xFF puisque le sprite est enièrement noir ??
et pourquoi pour calculer la taille, j'ai fait
16/8*5+2+2+1 au lieu de
10/8*5+2+2+1 ???
e du sprite, les suivantes sont identiques)
|____ ___|____ ___|
V V
0xFF 0xC0
(1octet) (1octet)
Parce que c'est arrondi à l'octet suivant. En binaire, la lecture de la mémoire à l'emplacement de l'image donnerait ça :
11111111 11000000 (1ère lign
[edit]Edité par jackiechan91 le 25-03-2002 à 22:10:08[/edit]