static DynamicSprite* DynamicSprite.Create(int largeur, int hauteur, optional bool possedeCanalAlpha)Crée une nouvelle sprite dynamique vierge de la taille spécifiée. Sera totalement transparent au départ, et peut posséder un canal alpha. Cette commande est utile si vous voulez juste créer une nouvelle sprite puis utiliser les commandes DrawingSurface pour dessiner dessus.
DynamicSprite* sprite = DynamicSprite.Create(50, 30); DrawingSurface *surface = sprite.GetDrawingSurface(); surface.DrawingColor = 14; surface.DrawPixel(25, 15); surface.Release(); sprite.Delete();
crée une sprite de taille 50×30, dessine un point blanc au milieu, puis supprime la sprite.
Voir aussi : DynamicSprite.Delete,
DynamicSprite.Graphic,
DynamicSprite.GetDrawingSurface
static DynamicSprite* DynamicSprite.CreateFromBackground(optional int numero, optional int x, optional int y, optional int largeur, optional int hauteur)Crée une nouvelle sprite dynamique, contenant une copie de l'image d'arrière-plan de la pièce.
DynamicSprite* sprite = DynamicSprite.CreateFromBackground(GetBackgroundFrame(), 130, 70, 60, 60); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(0, 0, sprite.Graphic); surface.Release(); sprite.Delete();
copie dans la sprite une zone de 60×60 pixels du centre de l'arrière-plan, et dessine l'image
au coin haut gauche de l'image d'arrière-plan.
Voir Aussi : DynamicSprite.Delete
static DynamicSprite* DynamicSprite.CreateFromDrawingSurface(DrawingSurface* surface, int x, int y, int largeur, int hauteur)Crée une sprite dynamique contenant une copie de la portion spécifiée de la surface de dessin (drawing surface). Cela vous permet de créer facilement de nouvelle sprite à partir de portions d'autres sprites.
DynamicSprite* sprite = DynamicSprite.CreateFromExistingSprite(object[0].Graphic); DrawingSurface *surface = sprite.GetDrawingSurface(); DynamicSprite *nouvelleSprite = DynamicSprite.CreateFromDrawingSurface(surface, 0, 0, 10, 10); surface.Release(); sprite.Delete(); object[0].Graphic = nouvelleSprite.Graphic;
change l'image de l'objet 0 pour le simple coin haut-gauche (10×10) de l'ancienne image.
Compatibilité : Supporté par AGS 3.0.2 et les versions plus récentes.
Voir aussi : DynamicSprite.Delete
static DynamicSprite* DynamicSprite.CreateFromExistingSprite(int slot, optional bool preserverCanalAlpha)Crée une nouvelle sprite dynamique contenant une copie de la sprite numéro slot spécifiée.
DynamicSprite* sprite = DynamicSprite.CreateFromExistingSprite(object[0].Graphic); sprite.Resize(20, 20); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 80, sprite.Graphic); surface.Release(); sprite.Delete();
crée une copie de la sprite actuelle de l'objet 0, la redimensionne à 20×20, puis
dessine l'image obtenue sur l'arrière-plan.
Voir Aussi : DynamicSprite.Delete,
DynamicSprite.Resize
(Anciennement LoadImageFile, désormais obsolète)
static DynamicSprite* DynamicSprite.CreateFromFile(string nomfichier)
Charge une image NOMFICHIER externe dans la mémoire en tant que sprite.
Retourne l'objet DynamicSprite représentant la sprite, ou null si l'image n'a
pas pu être chargée (fichier non trouvé ou format non supporté).
Seuls les fichiers BMP et PCX peuvent être chargés avec cette commande.
Utilisez la propriété Graphic de la DynamicSprite pour
utiliser l'image contenue dans les autres commandes et les manipuler dans le jeu.
IMPORTANT : Cette commande charge une sprite supplémentaire en mémoire qui n'est pas
contrôlée par le cache classique d'AGS et qui ne sera pas automatiquement supprimée. C'est pourquoi,
lorsque vous avez fini d'utiliser l'image, vous DEVEZ appeler Delete dessus pour libérer
la mémoire.
IMPORTANT : Si l'objet DynamicSprite est supprimé de la mémoire (c'est-à-dire s'il n'y a plus
de variable DynamicSprite* pointant vers l'image), alors la sprite sera aussi supprimée de
la mémoire. Assurez vous que vous gardez une variable pointant vers la sprite jusqu'à ce que
vous ayez fini de l'utiliser (vous appellerez alors Delete).
Exemple :
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); if (sprite != null) { DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 80, sprite.Graphic); surface.Release(); sprite.Delete(); }
chargera le fichier “AvatarPerso.bmp” et si tout s'est bien passé, desinera l'image
vers le milieu de l'écran.
Une fois qu'on a fini d'utiliser l'image, Delete est utilisée sur la sprite.
Voir Aussi : DynamicSprite.Delete,
DynamicSprite.CreateFromSaveGame
(Anciennement LoadSaveSlotScreenshot, désormais obsolète)
static DynamicSprite* DynamicSprite.CreateFromSaveGame(int slotSauvegarde, int largeur, int hauteur)
Charge la capture d'écran de la partie sauvée à l'emplacement SLOTSAUVEGARDE en mémoire,
en la redimensionnant à LARGEUR x HAUTEUR.
Retourne l'objet DynamicSprite correspondant à l'image si tout s'est bien passé, ou retourne
null si la capture d'écran n'a pas pu être chargée (si la partie sauvée n'en contenait
pas par exemple).
Pour que cela fonctionne, l'option “Sauver les captures d'écran dans les sauvegardes des parties”
(“Save screenshots in save games”) doit être cochée dans le panneau principal Game Settings.
IMPORTANT : Cette commande charge une sprite supplémentaire en mémoire qui n'est pas
contrôlée par le cache classique d'AGS et qui ne sera pas automatiquement supprimée. C'est pourquoi,
lorsque vous avez fini d'utiliser l'image, vous DEVEZ appeler Delete dessus pour libérer
la mémoire.
IMPORTANT : Si l'objet DynamicSprite est supprimé de la mémoire (c'est-à-dire s'il n'y a plus
de variable DynamicSprite* pointant vers l'image), alors la sprite sera aussi supprimée de
la mémoire. Assurez vous que vous gardez une variable pointant vers la sprite jusqu'à ce que
vous ayez fini de l'utiliser (vous appellerez alors Delete).
Exemple :
// tout en haut du script, hors des events DynamicSprite *boutonSprite; // dans une event boutonSprite = DynamicSprite.CreateFromSaveGame(1, 50, 50); if (boutonSprite != null) { btnScrnshot.NormalGraphic = boutonSprite.Graphic; }
chargera la capture d'écran de la première partie sauvegardée et la redimensionnera à 50×50.
L'utilisera ensuite comme image pour le bouton de GUI btnScrnshot.
Ceci fait, Delete est appelée sur la sprite pour libérer la mémoire.
Voir Aussi : DynamicSprite.Delete,
Game.GetSaveSlotDescription,
DynamicSprite.CreateFromFile,
DynamicSprite.CreateFromScreenShot
static DynamicSprite* DynamicSprite.CreateFromScreenShot(optional int largeur, optional int hauteur)Crée un nouvel objet DynamicSprite contenant une copie de la capture d'écran actuelle, en la redimensionnant à LARGEUR x HAUTEUR. Si vous n'entrez pas la largeur et la hauteur, alors une sprite de plein écran sera créée.
// tout en haut du script, hors des events DynamicSprite *boutonSprite; // dans une event boutonSprite = DynamicSprite.CreateFromScreenShot(80, 50); if (boutonSprite != null) { btnScrnshot.NormalGraphic = boutonSprite.Graphic; }
utilise la capture d'écran de la partie actuelle comme image du bouton btnScrnshot.
Ceci fait, Delete est appelée sur la sprite pour libérer la mémoire.
Voir Aussi : DynamicSprite.Delete,
Game.GetSaveSlotDescription,
DynamicSprite.CreateFromFile,
DynamicSprite.CreateFromSaveGame
DynamicSprite.ChangeCanvasSize(int largeur, int hauteur, int x, int y);Change la taille de la sprite pour largeur x hauteur , et décale l'image actuelle vers (x, y) dans le nouveau cadre. Contrairement à la commande Resize, l'image obtenue par cette commande garde sa taille originale.
DynamicSprite* sprite = DynamicSprite.CreateFromExistingSprite(10); sprite.ChangeCanvasSize(sprite.Width + 10, sprite.Height, 5, 0); DrawingSurface *surface = sprite.GetDrawingSurface(); surface.DrawingColor = 14; surface.DrawLine(0, 0, 5, surface.Height); surface.Release(); sprite.Delete();
crée une sprite dynamique qui est une copie de la sprite 10, l'élargie de 5 pixels
à gauche et à droite, puis dessine une ligne dans la nouvelle zone sur la gauche.
Voir aussi : DynamicSprite.Crop,
DynamicSprite.Resize,
DynamicSprite.Height,
DynamicSprite.Width
DynamicSprite.CopyTransparencyMask(int depuisSprite)Copie le masque de transparence depuis le numéro de sprite spécifié vers la sprite dynamique. La transparence de la sprite dynamique et/ou son canal alpha seront remplacés par celle de l'autre sprite.
DynamicSprite* sprite = DynamicSprite.CreateFromExistingSprite(10); sprite.CopyTransparencyMask(11); object[0].Graphic = sprite.Graphic; Wait(80); sprite.Delete();
crée une sprite dynamique qui sera une copie de la sprite 10, change son masque de transparence pour
utiliser celle de la sprite 11, et l'affiche sur l'objet 0.
Voir aussi : DynamicSprite.CreateFromExistingSprite
DynamicSprite.Crop(int x, int y, int largeur, int hauteur);Rogne l'image à largeur x hauteur, en commençant aux coordonnées (X,Y) de l'image. La largeur et la hauteur sont spécifiées dans la résolution 320×200, comme d'habitude.
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); sprite.Crop(10, 10, sprite.Width - 10, sprite.Height - 10); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 100, sprite.Graphic); surface.Release(); sprite.Delete();
chargera l'image AvatarPerso.bmp, en coupera les 10 premiers pixels des bords haut et gauche,
puis dessinera l'image résultant aux coordonnées (100,100) de l'arrière-plan.
Voir Aussi : DynamicSprite.Flip,
DynamicSprite.Height,
DynamicSprite.Width
(Anciennement DeleteSprite, désormais obsolète)
DynamicSprite.Delete();
Supprime la sprite dynamique spécifiée de la mémoire. Utilisez ceci lorsque vous n'affichez
plus la sprite et qu'elle peut être supprimée en toute sûreté.
En temps normal, vous ne devriez pas avoir à supprimer les sprites, puisque le Cache de Sprite
d'AGS se charge lui-même de charger et de supprimer automatiquement les sprites.
Cependant, lorsque d'une sprite externe a été chargée dans le jeu (par exemple, avec les
commandes CreateFromFile ou CreateFromScreenShot), AGS ne la supprimera pas automatiquement,
et vous devrez alors appeler cette commande.
Exemple :
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); object[1].Graphic = sprite.Graphic; Wait(200); object[1].Graphic = 22; sprite.Delete();
chargera le fichier “AvatarPerso.bmp”, utilisera cette image pour l'objet 1, attendra
5 secondes, puis réutilisera l'ancienne sprite 22 pour l'objet 1 et libérera la sprite.
Voir Aussi : DynamicSprite.CreateFromScreenShot,
DynamicSprite.Graphic
DynamicSprite.Flip(eFlipDirection);Retourne la sprite dynamique selon les paramètres :
eFlipUpsideDown pivote l'image de haut en bas
eFlipBoth pivote l'image de haut en bas et de gauche à droite
Exemple :
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); sprite.Flip(eFlipUpsideDown); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 100, sprite.Graphic); surface.Release(); sprite.Delete();
chargera l'image AvatarPerso.bmp, la retournera de haut en bas, puis
la dessinera aux coordonnées (100,100) de l'arrière-plan.
Voir Aussi : DynamicSprite.Crop,
DynamicSprite.Resize,
DynamicSprite.Rotate
DrawingSurface* DynamicSprite.GetDrawingSurface();Retourne la surface de dessin de la sprite dynamique, ce qui vous permet de modifier la sprite en dessinant dessus de diverses façons.
DynamicSprite *sprite = DynamicSprite.CreateFromExistingSprite(object[0].Graphic); DrawingSurface *surface = sprite.GetDrawingSurface(); surface.DrawingColor = 13; surface.DrawLine(0, 0, 20, 20); surface.Release(); object[0].Graphic = sprite.Graphic; Wait(40); sprite.Delete();
ceci crée une sprite dynamique qui sera une copie de la sprite de l'objet 0,
dessine une ligne diagonale rose dessus, place cette nouvelle sprite sur l'objet
pour une seconde puis la supprime.
Voir aussi : DynamicSprite.CreateFromExistingSprite,
DrawingSurface.DrawLine,
DrawingSurface.Release
DynamicSprite.Resize(int largeur, int hauteur);Redimensionne une sprite dynamique existante à LARGEUR x HAUTEUR pixels.
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); sprite.Resize(sprite.Width * 2, sprite.Height * 2); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 100, sprite.Graphic); surface.Release(); sprite.Delete();
chargera l'image AvatarPerso.bmp, doublera sa taille, puis la dessinera sur l'arrière-plan
aux coordonnées (100,100) de la pièce.
Voir Aussi : DynamicSprite.Crop,
DynamicSprite.Flip,
DynamicSprite.Rotate,
DynamicSprite.Height,
DynamicSprite.Width
DynamicSprite.Rotate(int angle, optional int largeur, optional int hauteur)Effectue une rotation sur l'image de la sprite avec l'angle spécifié. L'angle est en degrés, et doit être entre 1 et 359. La rotation se fera dans le sens horaire avec l'angle spécifié.
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); sprite.Rotate(90); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 100, sprite.Graphic); surface.Release(); sprite.Delete();
chargera l'image AvatarPerso.bmp, effectuera une rotation de 90 degrés dans le sens horaire
dessus, dessinera le résultat à l'écran, puis supprimera la sprite.
Voir Aussi : DynamicSprite.Flip,
DynamicSprite.Resize,
DynamicSprite.Height,
DynamicSprite.Width
DynamicSprite.SaveToFile(string nomfichier)Sauvegardera la sprite dynamique dans le fichier spécifié.
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); sprite.Rotate(90); sprite.SaveToFile("AvatarPivote.bmp"); sprite.Delete();
chargera l'image AvatarPerso.bmp, effectuera une rotation de 90 degrés dans
le sens des aiguilles d'une montre, puis sauvera le résultat en créant le
fichier AvatarPivote.bmp sur le disque.
Voir Aussi : DynamicSprite.CreateFromFile,
SaveScreenShot
DynamicSprite.Tint(int rouge, int vert, int bleu, int saturation, int luminosite)Teinte la sprite dynamique pour (ROUGE, VERT, BLEU) avec une saturation de SATURATION pour-cents. Pour la signification des paramètres, voir SetAmbientTint.
DynamicSprite* sprite = DynamicSprite.CreateFromExistingSprite(object[0].Graphic); sprite.Tint(255, 0, 0, 100, 100); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 80, sprite.Graphic); surface.Release(); sprite.Delete();
crée une copie de la sprite de l'objet 0, la teint en rouge puis la dessine sur l'arrière-plan de la pièce.
Voir aussi : DynamicSprite.Flip,
DynamicSprite.Height,
DynamicSprite.Width,
SetAmbientTint
readonly int DynamicSprite.ColorDepth;Retourne la profondeur des couleurs de la sprite dynamique. Elle peut valoir 8, 16 ou 32 et n'est pas nécessairement la même que celle du jeu (bien que ce soit usuellement le cas).
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); if (sprite != null) { Display("L'image est d'une taille de %d x %d pixels et d'une profondeur de %d-bit.", sprite.Width, sprite.Height, sprite.ColorDepth); sprite.Delete(); }
affiche la profondeur des couleurs de l'image AvatarPerso.bmp ainsi que sa taille.
Voir Aussi : DynamicSprite.Height,
DynamicSprite.Width
readonly int DynamicSprite.Graphic;Retourne le numéro de l'emplacement de sprite dans lequel la sprite dynamique est contenue. Cette valeur peut être passée aux autres fonctions et propriétés, comme par exemple Button.NormalGraphic.
DynamicSprite* ds = DynamicSprite.CreateFromScreenShot(50, 50); DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); surface.DrawImage(100, 100, sprite.Graphic); surface.Release(); ds.Delete();
charge la capture d'écran, puis la dessine aux coordonnées (100,100) de la pièce, sur l'arrière-plan.
Voir Aussi : DynamicSprite.CreateFromScreenShot,
DynamicSprite.Delete
readonly int DynamicSprite.Height;Retourne la hauteur de la sprite dynamique. La hauteur est toujours retournée en résolution 320×200.
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); if (sprite != null) { Display("L'image est d'une taille de %d x %d pixels.", sprite.Width, sprite.Height); sprite.Delete(); }
affiche la taille de l'image AvatarPerso.bmp.
Voir Aussi : DynamicSprite.Resize,
DynamicSprite.Width
readonly int DynamicSprite.Width;Retourne la largeur de la sprite dynamique. La largeur est toujours retournée en résolution 320×200.
DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp"); if (sprite != null) { Display("L'image est d'une taille de %d x %d pixels.", sprite.Width, sprite.Height); sprite.Delete(); }
affiche la taille de l'image AvatarPerso.bmp.
Voir Aussi : DynamicSprite.Height,
DynamicSprite.Resize