Contents Up Previous Next

Fonctions et propriétés des Sprites Dynamiques

CreateFromBackground
CreateFromExistingSprite
CreateFromFile
CreateFromSaveGame
CreateFromScreenShot
Crop (dynamic sprite)
Delete (dynamic sprite)
Flip (dynamic sprite)
Resize (dynamic sprite)
Rotate (dynamic sprite)
SaveToFile (dynamic sprite)
ColorDepth propriété (dynamic sprite)
Graphic propriété (dynamic sprite)
Height propriété (dynamic sprite)
Width propriété (dynamic sprite)


CreateFromBackground

static DynamicSprite* DynamicSprite.CreateFromBackground
                      (optional int frame, 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.

L'utilisation la plus basique de cette fonction consiste à ne passer aucun paramètre, auquel cas la sprite contiendra une copie exacte de l'arrière-plan de la pièce actuelle.

Si vous voulez, vous pouvez entrer seulement frame, auquel cas vous obtiendrez une copie complète de l'image d'arrière-plan correspondant à ce numéro, dans la pièce actuelle.

Facultativement, vous pouvez spécifier une portion de l'arrière-plan à capturer. Vous devrez alors entrer les paramètres X, Y, LARGEUR et HAUTEUR (et aucun de ceux-là si vous voulez l'image entière) ; si vous les entrez, cela vous permet d'obtenir juste une petite portion de l'arrière-plan dans la nouvelle sprite. Toutes les coordonnées sont données en résolution 320x200, et sont les coordonnées de la pièce.

Utilisez la propriété DynamicSprite.Graphic pour utiliser l'image de la sprite dans les autres commandes et pouvoir la 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.CreateFromBackground(GetBackgroundFrame(), 130, 70, 60, 60);
RawDrawImage(0, 0, sprite.Graphic);
sprite.Delete();
copie dans la sprite une zone de 60x60 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


CreateFromExistingSprite

static DynamicSprite* DynamicSprite.CreateFromExistingSprite(int slot)
Crée une nouvelle sprite dynamique contenant une copie de la sprite numéro slot spécifiée.

Retourne l'objet DynamicSprite représentant la nouvelle sprite. Cette fonction est utile puisqu'elle vous permet d'effectuer des modifications comme des redimensionnements sur toute sprite dans le jeu.

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.CreateFromExistingSprite(object[0].Graphic);
sprite.Resize(20, 20);
RawDrawImage(100, 80, sprite.Graphic);
sprite.Delete();
crée une copie de la sprite actuelle de l'objet 0, la redimensionne à 20x20, puis dessine l'image obtenue sur l'arrière-plan.

Voir Aussi : DynamicSprite.Delete, DynamicSprite.Resize


CreateFromFile

(Formerly known as 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) {
  RawDrawImage(100, 80, sprite.Graphic);
  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


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 interactions
DynamicSprite *boutonSprite;  

// dans une interaction
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 à 50x50. 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


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.

Cette commande peut être utilie si vous créez un GUI affichant des captures d'écran de parties sauvées, dans l'intention d'afficher la position dans la partie corresondant aux emplacements de sauvegarde.

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 interactions
DynamicSprite *boutonSprite;  

// dans une interaction
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


Crop (dynamic sprite)

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 320x200, comme d'habitude.

Ceci vous permet d'équilibrer les bords de la sprite, et d'effectuer des tâches correspondantes. Seule la zone allant de (X,Y) (coin haut gauche) et d'une largeur de LARGEUR ainsi que d'une hauteur de HAUTEUR sera conservée.

Exemple :

DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp");
sprite.Crop(10, 10, sprite.Width - 10, sprite.Height - 10);
RawDrawImage(100, 100, sprite.Graphic);
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


Delete (dynamic sprite)

(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


Flip (dynamic sprite)

DynamicSprite.Flip(eFlipDirection);
Retourne la sprite dynamique selon les paramètres :

eFlipLeftToRight pivote l'image de gauche à droite
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);
RawDrawImage(100, 100, sprite.Graphic);
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


Resize (dynamic sprite)

DynamicSprite.Resize(int largeur, int hauteur);
Redimensionne une sprite dynamique existante à LARGEUR x HAUTEUR pixels.

La largeur et la hauteur sont spécifiées selon la résolution 320x200, comme d'habitude.

NOTE : Le redimensionnement est une opération relativement lente, donc n'essayer pas de redimensionner des sprites à chaque cycle de jeu, mais seulement lorsque c'est nécessaire.

Exemple :

DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp");
sprite.Resize(sprite.Width * 2, sprite.Height * 2);
RawDrawImage(100, 100, sprite.Graphic);
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


Rotate (dynamic sprite)

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é.

Facultativement, vous pouvez spécifier la largeur et la hauteur pour l'image résultat. Par défaut, AGS caclulera automatiquement la nouvelle taille nécessaire pour contenir l'image, mais vous pouvez le faire vous-même en entrant ces paramètres.

Notez que spécifier largeur et hauteur ne redimensionne pas l'image, cela permet juste de définir la zone qu'utilisera l'image une fois la rotation effectuée.

NOTE : La rotation est une opération relativement lente, essayez donc de ne pas l'appeler à chaque cycle de jeu ; mais seulement lorsque c'est nécessaire.

Exemple :

DynamicSprite* sprite = DynamicSprite.CreateFromFile("AvatarPerso.bmp");
sprite.Rotate(90);
RawDrawImage(100, 100, sprite.Graphic);
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


SaveToFile (dynamic sprite)

DynamicSprite.SaveToFile(string nomfichier)
Sauvegardera la sprite dynamique dans le fichier spécifié.

L'extension du nom de fichier que vous spécifiez doit être .PCX ou .BMP ; ce sont les deux seuls types de fichier que la machine supporte.

Retourne 1 si la sprite a bien été sauvegardée, ou 0 si l'opération a été un échec.

Exemple :

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


ColorDepth propriété (dynamic sprite)

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).

Exemple :

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


Graphic propriété (dynamic sprite)

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.

Exemple :

DynamicSprite* ds = DynamicSprite.CreateFromScreenShot(50, 50);
RawDrawImage(100, 100, ds.Graphic);
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


Height propriété (dynamic sprite)

readonly int DynamicSprite.Height;
Retourne la hauteur de la sprite dynamique. La hauteur est toujours retournée en résolution 320x200.

Exemple :

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


Width propriété (dynamic sprite)

readonly int DynamicSprite.Width;
Retourne la largeur de la sprite dynamique. La largeur est toujours retournée en résolution 320x200.

Exemple :

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