Encore du tron et du graphisme

cs_krater Messages postés 22 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 17 juin 2006 - 24 mai 2003 à 10:13
cs_krater Messages postés 22 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 17 juin 2006 - 26 mai 2003 à 10:05
me revoila pour une question de TRON( et oui j'ai un ambitieux projet)

je sais que pour afficher point par point un dessin, je peut mettre dans un tableau de db ou dw une suite de chiffre correspondant aux couleurs du dessin cependant lorseque j'ai programmer la chose et bein ca ne marche pas plein de couleur apparaisse à l'écran et tres loin de dessin souhaitait

voici mon tableau :
exemple db 0,8,8,8,0,8,0,8,0,8,0,0,8,0,0,0,0,12,0,0,0,0,8,0,0,8,0,8,0,8,0,8,8,8,0

et voici le code que j'utilise :

MOV CH,exemple[BX]
MOV byte ptr ES:[SI], CH
ou SI est la coordonnée sur l'ecran et BX la coordonnées dans la tableau exemple

Deplus je souhaiterais avoir une bonne fonction random que je puisse parametré de préférence.

merci d'avance

2 réponses

prunkdump Messages postés 33 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 19 avril 2004
24 mai 2003 à 13:59
-------------------------------
Réponse au message :
-------------------------------

Salut je ne suis pas sur de tout comprendre a se que tu veux faire mais il faut savoir deux choses lorsque l'on veux afficher une image à l'écran:
-si tu est en mode 256 couleurs le PC fonctionne en couleurs indexés donc il faut définir une palette DAC pour cela tu peux utiliser photoshop qui de donnera un palette correspondant à ton image mais attentiont!!! Ce logiciel ma fois un peu con des fois fait les palettes avec des valeurs qui vont de 0 à 255 alors que les palette DAC ne vont que de 0 à 63 donc il faut diviser toutes les valeurs de la palette par 4.
-si tu est en plus de 256 couleurs pas de problême de couleur parcequ'il n'y à pas d'indexage mais le format est lourd et il faudra utiliser des chunks qui sont géré par les cartes graphique VESA, tu trouvera plein de choses sur internet sur ce sujet.

Enfin pour copier le contenue du buffer dans le buffer écran il vaut mieu faire:

mov si, offset exemple
mov ax, (segment buffer écran en général 0xa000)
mov es, ax
mov cx, (nombre d'octets à copier)
mov di, offset écran
rep movsb

C'est très rapide il n'y que le 3Dnow! qui peut dépasser cette vitesse.

---------------------------------------------

> me revoila pour une question de TRON( et oui j'ai un ambitieux projet)
>
> je sais que pour afficher point par point un dessin, je peut mettre dans un tableau de db ou dw une suite de chiffre correspondant aux couleurs du dessin cependant lorseque j'ai programmer la chose et bein ca ne marche pas plein de couleur apparaisse à l'écran et tres loin de dessin souhaitait
>
> voici mon tableau :
> exemple db 0,8,8,8,0,8,0,8,0,8,0,0,8,0,0,0,0,12,0,0,0,0,8,0,0,8,0,8,0,8,0,8,8,8,0
>
> et voici le code que j'utilise :
>
> MOV CH,exemple[BX]
> MOV byte ptr ES:[SI], CH
> ou SI est la coordonnée sur l'ecran et BX la coordonnées dans la tableau exemple
>
> Deplus je souhaiterais avoir une bonne fonction random que je puisse parametré de préférence.
>
> merci d'avance
0
cs_krater Messages postés 22 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 17 juin 2006
26 mai 2003 à 10:05
En fait chaque case de mon tableau correspond a une couleur d'un pixel c'est en fait un bloc de pixel qui est une image de par exemple 5 pixel sur 10 et au lieu d'afficher point par point le dessin j'affiche le bloc préalablement enregistré dans mon tableau afin de simplifier l'affichage une boucle for pour tous les points et non un passage pour chaque point
cependant si sur le principe ca fonctionne la pratique elle me donne des resultat incoherents
0