Pages traduites Pages à traduire Pages en cours de traduction
A propos
 


Fonctions et propriétés des surfaces de dessin (DrawingSurface)

La famille de fonctions DrawingSurface vous permet de dessiner directement sur les dynamic sprites et les arrière-plans du jeu. Vous obtenez une surface de dessin en appelant DynamicSprite.GetDrawingSurface ou Room.GetDrawingSurfaceForBackground, et vous pouvez ensuite utiliser les méthodes suivantes pour dessiner sur ces surfaces.

IMPORTANT : Vous DEVEZ appeler la méthode Release lorsque vous avez fini de dessiner sur une surface. Ceci permet à AGS de mettre à jour les copies en cache de l'image et de les charger en mémoire vidéo si nécessaire.


Clear (drawing surface)

(Anciennement RawClearScreen, désormais obsolète)

DrawingSurface.Clear(optional int couleur)

Remplit la surface avec la COULEUR spécifiée (correspond aux numéros dans l'onglet Colours de l'éditeur). Le contenu en cours de la surface sera effacé.

Si vous n'entrez pas de paramètre COULEUR, ou utilisez COLOR_TRANSPARENT, la surface deviendra entièrement transparente.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.Clear(14);
surface.DrawingColor = 13;
surface.DrawCircle(160,100,50); 
surface.Release();

rend l'arrière-plan de la pièce entièrement jaune, puis dessine un cercle rose en son milieu.

Voir aussi : DrawingSurface.DrawingColor


CreateCopy

(Anciennement RawSaveScreen, désormais obsolète)

DrawingSurface* DrawingSurface.CreateCopy()

Crée une copie de la surface actuelle, de façon à pouvoir la récupérer plus tard pour la restaurer. Ceci peut être utile si vous voulez faire une copie de sauvegarde de l'arrière-plan avant de dessiner dessus, ou pour sauvegarder une étape de votre dessin et la restaurer plus tard.

Contrairement à la commande obsolète RawSaveScreen des versions précédentes d'AGS, les surfaces créées par cette commande ne sont pas perdues lorsque le joueur change de pièce ou restaure une partie. Toutefois, les surfaces qui contiennent des copies d'arrière-plans peuvent être très lourdes , occupant une grande place dans la mémoire et peuvent significativement alourdir le jeu. Ainsi, il est fortement recommandé d'utiliser Release sur la surface copiée dès que vous en avez fini avec elle.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
DrawingSurface *backup = surface.CreateCopy();
surface.DrawTriangle(0,0,160,100,0,200);
Wait(80);
surface.DrawSurface(backup);
backup.Release();
surface.Release();

fera une copie de sauvegarde de l'arrière-plan de la pièce, dessinera un triangle dessus, attendra un moment puis restaurera l'arrière-plan original.

Voir aussi : DrawingSurface.DrawSurface


DrawCircle

(Anciennement RawDrawCircle, désormais obsolète)

DrawingSurface.DrawCircle(int x, int y, int rayon)

Dessine un cercle plein de rayon RAYON centré à (X,Y) de la couleur de dessin courante.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawCircle(160,100,50); 
surface.Release();

dessinera un cercle jaune au centre de l'écran, d'un rayon de 50 pixels.

Voir aussi : DrawingSurface.DrawLine, DrawingSurface.DrawingColor


DrawImage

(Anciennement RawDrawImage, désormais obsolète) (Anciennement RawDrawImageResized, désormais obsolète) (Anciennement RawDrawImageTransparent, désormais obsolète)

DrawingSurface.DrawImage(int x, int y, int bloc, optional int transparence,
                         optional int largeur, optional int hauteur)

Dessine l'image BLOC du gestionnaire de sprite sur la surface aux coordonnées (X,Y).

Facultativement, vous pouvez aussi spécifier la transparence de l'image. Cela correspond à un nombre de 0 à 100 ; passer une valeur de 50 pour transparence dessinera l'image à moitié transparente ; passer 0 signifiera que l'image n'est pas transparente du tout.

Vous pouvez aussi redimensionner l'image que vous dessinez. Pour cela, spécifiez simplement les largeur et hauteur auxquelles vous voulez redimensionner l'image sur le dessin.

NOTE : Cette commande ne fonctionne que si l'image à dessiner est de la même profondeur de couleur que la surface sur laquelle vous dessinez.

NOTE : La transparence ne marche pas dans les jeux 256 couleurs, ou avec des sprites 256 couleurs.

NOTE : Les coordonnées X et Y correspondent à celles de la PIECE, et non à celles de l'ECRAN. Cela signifie que dans une pièce à défilement, vous pouvez dessiner hors de la zone actuellement visible.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawImage(100, 100, oPorte.Graphic, 40);
surface.Release();

dessinera l'image de l'objet oPorte sur l'arrière-plan à (100,100), à 40% de transparence.

Voir aussi : DrawingSurface.DrawLine, DrawingSurface.DrawString, DrawingSurface.DrawSurface, Room.ColorDepth


DrawLine

(Anciennement RawDrawLine, désormais obsolète)

DrawingSurface.DrawLine(int depuis_x, int depuis_y, int a_x, int a_y,
                        optional int epaisseur) 

Dessine une ligne depuis (depuis_x, depuis_y) jusqu'à (a_x, a_y) de la couleur en cours pour la surface.

Le paramètre epaisseur vous permet de spécifier l'épaisseur de la ligne, de 1 pixel par défaut.

NOTE : Les coordonnées X et Y sont les coordonnées de la PIECE, pas de l'ECRAN. Cela signifie que dans une pièce à défilement, vous pouvez dessiner hors de la zone actuellement visible.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawLine(0, 0, 160, 100);
surface.Release();

dessinera une ligne qui part du coin supérieur gauche de l'écran (0,0) jusqu'au milieu (160, 100).

Voir aussi : DrawingSurface.DrawCircle, DrawingSurface.DrawRectangle, DrawingSurface.DrawTriangle, DrawingSurface.DrawingColor


DrawMessageWrapped

(Anciennement RawPrintMessageWrapped, désormais obsolète)

DrawingSurface.DrawMessageWrapped(int x, int y, int largeur,
                                  FontType police, int numero_message)

Dessine le message NUMERO_MESSAGE sur la surface à (X,Y), en utilisant la POLICE spécifiée.

LARGEUR correspond à la largeur du cadre virtuelle entourant le texte, et après laquelle le texte sera retourné à la ligne. Cette commande est conçue pour écrire un long message à l'écran tout en le formattant normalement comme le ferait une étiquette (label) classique.

Le texte sera dessiné dans la couleur de dessin courante.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawMessageWrapped(80, 40, 160, Game.NormalFont, 10); 
surface.Release();

affichera le message 10 au centre de l'écran, en commençant à Y = 40.

Voir aussi : DrawingSurface.DrawString, DrawingSurface.DrawingColor, DrawingSurface.DrawStringWrapped


DrawPixel

DrawingSurface.DrawPixel(int x, int y) 
Dessine un simple pixel sur la surface à (X,Y) dans la couleur courante. L'épaisseur du pixel est définie par la propriété UseHighResCoordinates.

NOTE : Cette commande n'est pas suffisamment rapide pour l'utiliser en répétition afin de créer une image complète. Ne l'utilisez que pour de simples ajustements de pixels.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawPixel(50, 50);
surface.Release();

dessine un pixel jaune au coin supérieur gauche de l'arrière-plan.

Voir aussi : DrawingSurface.DrawingColor, DrawingSurface.DrawLine, DrawingSurface.GetPixel, DrawingSurface.UseHighResCoordinates


DrawRectangle

(Anciennement RawDrawRectangle, désormais obsolète)

DrawingSurface.DrawRectangle(int x1, int y1, int x2, int y2)

Dessine un rectangle plein dans la couleur courante avec son coin supérieur gauche à (X1,Y1) et son coin inférieur droit à (X2,Y2).

NOTE : Les coordonnées X et Y sont celles de la PIECE, pas celles de l'ECRAN. Cela signifie que dans une pièce à défilement vous pouvez dessiner hors de la zone actuellement visible.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawRectangle(0, 0, 160, 100);
surface.Release();

dessinera un rectangle sur le quart haut gauche de l'écran.

Voir aussi : DrawingSurface.DrawImage, DrawingSurface.DrawLine


DrawString

(Anciennement RawPrint, désormais obsolète)

DrawingSurface.DrawString(int x, int y, FontType police, string texte, ...)

Dessine le texte sur la surface à (X, Y), en utilisant le numéro de police spécifié. Le texte sera dessiné dans la couleur de dessin courante.

Vous pouvez insérer des valeurs de variables dans le message. Pour plus d'information, voyez la section formatage des chaînes de caractères.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawString(0, 100, Game.NormalFont, "Text written into the background!");
surface.Release();

dessinera du texte sur le milieu gauche de l'arrière-plan.

Voir aussi : GetTextWidth, DrawingSurface.DrawStringWrapped, DrawingSurface.DrawingColor


DrawStringWrapped

DrawingSurface.DrawStringWrapped(int x, int y, int largeur,
                                 FontType police, Alignment,
                                 const string texte)
Dessine le texte sur la surface à (X,Y), en utilisant la POLICE spécifiée.

largeur correspond à la largeur du cadre virtuel entourant le texte, et correspond au point où le texte sera retourné à la ligne. Vous pouvez utiliser le paramètre alignment pour déterminer comment le texte sera horizontalement aligné.

Le texte sera dessiné en utilisant la couleur de dessin en cours.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawStringWrapped(80, 40, 160, Game.NormalFont, eAlignCentre, "Hello, my name is Bob."); 
surface.Release();

affichera le texte au centre de l'écran, en commençant à Y = 50.

Compatibilité : Supporté par AGS 3.0.1 et les versions plus récentes.

Voir aussi : DrawingSurface.DrawString, DrawingSurface.DrawingColor, DrawingSurface.DrawMessageWrapped


DrawSurface

(Anciennement RawDrawFrameTransparent, désormais obsolète) (Anciennement RawRestoreScreen, désormais obsolète)

DrawingSurface.DrawSurface(DrawingSurface *source, optional int transparence)

Dessine la surface spécifiée sur cette surface, en utilisant optionnellement une transparence de transparence pour-cent.

Ceci vous permet d'effectuer des fondus de tombée de nuit ou d'autres effets spéciaux.

NOTE : Vous ne pouvez pas utiliser le paramètre transparence sur les surfaces 256 couleurs.

NOTE : Cette commande peut être assez lente, ne l'appelez donc pas dans repeatedly_execute.

ASTUCE : Si vous voulez fondre graduellement vers un second arrière-plan, créez une copie de la surface originale puis restaurez-la à chaque itération, sinon l'arrière-plan changera trop rapidement.

Exemple :

DrawingSurface *mainBackground = Room.GetDrawingSurfaceForBackground(0);
DrawingSurface *nightBackground = Room.GetDrawingSurfaceForBackground(1);
mainBackground.DrawSurface(nightBackground, 50);
mainBackground.Release();
nightBackground.Release();

ceci dessinera l'image d'arrière-plan 1 sur l'image 0 à 50% d'opacité.

Voir aussi : DrawingSurface.DrawImage, SetAmbientTint


DrawTriangle

(Anciennement RawDrawTriangle, désormais obsolète)

DrawingSurface.DrawTriangle(int x1, int y1, int x2, int y2, int x3, int y3)

Dessine un triangle plein dans la couleur en cours avec ses coins aux points (X1,Y1), (X2,Y2) et (X3,Y3).

Oui, bon, me regardez pas comme ça, vous pourriez trouver ça utile pour quelque chose :-)

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawTriangle(0,0,160,100,0,200); 
surface.Release();

dessinera un triangle avec les coins aux points (0,0),(160,100),(0,200).

Voir aussi : DrawingSurface.DrawImage, DrawingSurface.DrawLine, DrawingSurface.DrawRectangle


Release (drawing surface)

DrawingSurface.Release()
Informe AGS que vous avez fini de dessiner sur la surface, et lui permet de charger l'image modifiée dans la mémoire vidéo.

Après avoir appelé cette méthode, vous ne pouvez plus utiliser la variable DrawingSurface. Pour tout changement, vous devrez récupérer la surface à nouveau.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawLine(0, 0, 50, 50);
surface.Release();

dessine une ligne diagonale jaune à travers le coin supérieur gauche de l'arrière-plan en cours, puis affiche l'image.

Voir aussi : DynamicSprite.GetDrawingSurface, Room.GetDrawingSurfaceForBackground


DrawingColor property

(Anciennement RawSetColor, désormais obsolète)

int DrawingSurface.DrawingColor

Retourne/Définit la couleur de dessin courante sur la surface. Définissez-la avant d'utiliser des commandes comme DrawLine, qui utilisent cette couleur pour dessiner.

Vous pouvez soit donner un Numéro de Couleur AGS (AGS Colour Number) (comme affichée dans l'onglet Colour de l'éditeur) ou la constante spéciale COLOR_TRANSPARENT, ce qui vous permet de dessiner des zones transparentes sur la surface.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
surface.DrawLine(0, 0, 160, 100);
surface.DrawingColor = Game.GetColorFromRGB(255, 255, 255);
surface.DrawLine(0, 199, 160, 100);
surface.Release();

affichera une ligne gauche depuis le coin supérieur gauche de l'écran (0,0) jusqu'au milieu (160,100), puis une ligne blanche depuis le coin inférieur gauche jusqu'au le milieu.

Voir aussi : DrawingSurface.DrawCircle, DrawingSurface.DrawLine, DrawingSurface.DrawRectangle, Game.GetColorFromRGB


GetPixel

int DrawingSurface.GetPixel(int x, int y) 
Retourne le Numéro de Couleur AGS (AGS Colour Number) du pixel au point (X,Y) de la surface.

NOTE : Dans un jeu hautes-couleurs, les 32 premiers numéros de couleur ont un sens spécial, car AGS les utilise pour maintenir la compatibilité avec les jeux 8-bits. Ainsi, si vous dessinez sur la surface en utilisant une couleur bleu de numéro 0 à 31, vous obtiendrez un numéro différent lorsque vous appellerez GetPixel – et en fait la couleur dessinée pourrait ne pas correspondre à ce que vous attendez. Pour vous en sortir, ajoutez simplement une valeur de 1 de Rouge et de Vert pour ajuster le numéro de la couleur hors de cet intervalle.

NOTE : Cette commande est relativement lente. Ne l'utilisez pas pour tenter de traiter l'image entière.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
Display("The colour of the middle pixel is %d.", surface.GetPixel(160, 100));
surface.Release();

affiche la couleur du pixel du centre de l'écran.

Compatibilité : Supporté par AGS 3.0.1 et les versions plus récentes.

Voir aussi : DrawingSurface.DrawingColor, DrawingSurface.DrawPixel, DrawingSurface.UseHighResCoordinates


Height property (drawing surface)

readonly int DrawingSurface.Height
Retourne la hauteur de la surface.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
Display("L'arrière-plan est de dimension %d x %d !", surface.Width, surface.Height);
surface.Release();

affiche la dimension de la surface au joueur.

Voir aussi : DrawingSurface.UseHighResCoordinates, DrawingSurface.Width


UseHighResCoordinates property

bool DrawingSurface.UseHighResCoordinates
Retourne/Définit si vous voulez utiliser les coordonnées haute-résolution sur cette surface.

Par défaut, cette propriété sera définie de façon à ce que les coordonnées de la surface de dessin utilisent les coordonnées du système comme le reste de l'écran, comme pour le réglage de jeu “Use low-res co-ordinates in script” (”Utiliser les coordonnées basse-résolution dans le script”) Toutefois, si votre jeu est en 640×400 ou supérieur, vous pouvez choisir si la surface utilisé les coordonnées natives ou les coordonnées de basse-résolution 320×200 en changeant cette propriété.

En définissant cette propriété vous affectez TOUTES les autres commandes effectuées sur cette surface de dessin, incluant les propriétés Width et Height.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.UseHighResCoordinates = true;
surface.DrawingColor = 14;
surface.DrawLine(0, 0, 320, 200);
surface.Release();

dessine une ligne jaue depuis le coin gauche supérieur de l'écran jusqu'au milieu. Si UseHighResCoordinates ne valait pas true, cela dessinera la ligne depuis le coin gauche supérieur jusqu'au coin inférieur bas de l'écran.

Voir aussi : DrawingSurface.DrawCircle, DrawingSurface.DrawLine, DrawingSurface.DrawRectangle, DrawingSurface.DrawTriangle


Width property (drawing surface)

readonly int DrawingSurface.Width
Retourne la largeur de la surface.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
Display("L'arrière-plan est de dimension %d x %d !", surface.Width, surface.Height);
surface.Release();

affiche la taille de la surface au joueur.

Voir aussi : DrawingSurface.Height, DrawingSurface.UseHighResCoordinates

 
ags50.txt · Dernière modification: 02/05/2011 11:41 par kitai
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki