Bon, j'ai encore amélioré certains trucs. Maintenant le prog travaille à partir d'un sprite (d'ailleurs regardez le topic 'reconnaissance chaine & taille sprite' svp...)
Démonstration :
Bon tout à l'air normal mais si vous regardez bien vous voyez le dessin clignoter en haut à gauche de l'écran. Et malheureusement je n'ai pas pu empecher ça, regardez le source :
char cible[LCD_SIZE],source[LCD_SIZE];
unsigned short x,y;
memcpy(source,LCD_MEM,LCD_SIZE);
[**** Les lignes indiqués dans TIGCC pour afficher une 'pic' à l'écran ***]
memcpy(cible,LCD_MEM,LCD_SIZE);
LCD_restore(source);
for(x=commandes[2];x<=commandes[4];x++)
for(y=commandes[3];y<=commandes[5];y++)
{
if (EXT_GETPIX(cible,(x-commandes[2])*commandes[6]/(commandes[4]-commandes[2]),(y-commandes[3])*commandes[7]/(commandes[5]-commandes[3]))) EXT_SETPIX(source,x,y);
else EXT_CLRPIX(source,x,y);
}
LCD_restore(source);
Détail des variables :
commandes[2] : Coin x1 ou le sprite zoomé sera affiché
commandes[3] : Coin y1 ou le sprite zoomé sera affiché
commandes[4] : Coin x2 ou le sprite zoomé sera affiché
commandes[5] : Coin y2 ou le sprite zoomé sera affiché
commandes[6] : Dimention X du sprite
commandes[7] : Dimention Y du sprite
Si je pouvais me passer des commandes[6] et [7] ça serait bien, voyez le topic 'reconnaissance chaine & taille sprite' pour plus d'informations.
J'utilise des tas de memcpy et LCD_restore, je vais expliquer dans le détail à quoi ça sert :
1) Sauver l'écran original dans 'source'
2) Afficher le sprite
3) Sauver l'écran avec le sprite dans 'cible'
4) Restaurer l'écran de départ
5) Effectuer le zoom sur l'écran virtuel 'source'
6) Afficher source, qui est donc l'écran de départ avec le zoom effectué
Tout ça parceque l'affichage de la variable pic ne peut se faire
que sur le LCD_MEM et non sur un de mes écrans virtuels. Je ne sais pas pourquoi, mais quand j'essaye ça plante.
Voilà si qqun peut m'aider...
[edit]Edité par Bob 64 le 31-12-2001 à 13:13:53[/edit]