je ne comprend pas , y'a toujours un decalage de 1 ou +sieurs octets vers la droite, meme si xb et xo sont nuls....
voila mon code :
short x=0,y=10;
short xo=(short)(x/8),xb=x%8;
unsigned char sprite2[8]={0b11111111,0b10001000,0b01110111,0b01110111,0b10001000,0b11111111,0b00000000,0b00000000};
x=0;
void * offset = LCD_MEM+y*30+xo;
clrscr();
if(xo%2!=0)
{
xo--;
xb+=8;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);offset+=30;
*(unsigned long*)offset=((unsigned long)(sprite2[x++])>>xb);
}
else
{
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);offset+=30;
*(unsigned short*)offset=((unsigned short)(sprite2[x++])>>xb);
}
ngetchx();
ensuite , j'ai une deuxieme question, comment est ce que l'on peut faire du 3 niveau de gris?
et d'ailleurs, comment est ce que ca marche le 2 niveau de gris ?