1

Hello !
J'ai un projet à faire en Turbo Pascal pour la FAC et j'ai besoin de quelques conseilles.
Premièrement, je voudrais réaliser une procedure d'affichage rapide de sprite et je ne sais pas trop quel méthode utiliser. Tout d'abbord je travail en 640*480 en 16 couleurs.
Ma procédure que j'utilise est la suivante :

#1:
PROCEDURE DrawSprite16(VAR Spritesorryprite16;X,Y:Integer);
VAR i,j:Integer;
BEGIN
FOR i:=X TO X+15 DO
FOR j:=Y TO Y+15 DO
PutPixel( i , j , [i-X+1 , j-Y+1])
END;

Sprite16 étant définis de la manière suivante :

TYPE Sprite16 := array [1..16,1..16] of Word;

Cette méthode d'affichage marche, mais je la trouve beaucoup trop lente donc je voulais savoir quels sont les méthodes plus rapide. Faut il passer par l'assembleur ?
Je voudrais que cette méthode face un affichage propre (qui ne clignote pas et ne sacade pas).

#2:
Il me faut absolument une routine de sauvegarde de l'écran ou d'une partie de l'écran et il n'existe aucune commande de base réalisant cette fonction a par GetPixel qui est trop lent aussi. Comment faire en assembleur pour sauver une partie de ce qui est affiché (le contenu d'un rectangle X1,Y1,X2,Y2) et restaurer ce qui était affiché à d'autre coordonnées ?

Si quelqu'un pouvait m'aider, ce serait trop cool smile



Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

2

Bon, je vois que personne ne poste.

Quel est le principe d'affichage de sprite et de sauvegarde de l'écran sur ti ?
Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

3

afficher un sprite en C :

Sprite**(x, y, hauteur , nom_sprite, Plan , Attr);

gringringringrin
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

4

Regarde les sources de extgraph.

5

Il va falloir soit que tu trouves une librairie graphique optimisée sur Internet, soit la programmer toi-même, et là bon courage.

En gros : l'écran en 640*480 et divisé en 4 plans, pour les 4 bits de 2^4 couleurs.

Dans chaque plan, les pixels sont stockés ligne par ligne. Ils sont groupés à 8 pixels par octet, comme dans les modes graphiques noir et blanc. Chaque plan fait donc (640*480/8 octets = 38'400 octets).

Pour accéder à un pixel, il faut :
1) trouver l'adresse du pixel
2) sélectionner chaque plan successivement
3) mettre le bit du plan à 0 ou 1
4) recommencer pour les 4 plans

Voilà un résumé en gros...

Si tu as le choix du mode graphique, je te conseille plutôt le 320*200 en 256 couleurs (beaucoup plus simple).

Tu trouveras toutes les docs sur le Net...

Bonne chance !

6

Merci !
Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918