WIKI ADO

Accueil > ArmA2 > Edition de missions > Afficher une image

Afficher une image

- Publié le 16 Avril 2013 à 12h29 - Modifié le 25 Avril 2013 à 22h09
Nous allons apprendre à afficher une image personnalisée dans le jeu.
L'image peut être de format .jpg ou .paa. La taille et la position de l'image sont configurables (Voir plus bas).

Dans l'exemple ci-dessous, nous allons afficher un logo.
Je vais également vous expliquer à la fin de ce tutoriel comment afficher plusieurs images simultanément ou décalées.

Erreur Image

Afficher une image


Dans un premier temps, vous devez placer votre image dans le dossier de votre mission (Mes documents/[ArmA2\ArmA2 Other Profiles]/VotrePseudo/missions/maMission.*) :
Ensuite, dans celui-ci, vous allez créer deux fichiers :

description.ext


#define FONT_Z                 "Zeppelin32"
#define CT_STATIC            0
#define CT_SHORTCUT_BUTTON     16
#define ST_PICTURE             48
#define ST_NOBORDER            512
#define ST_LEFT             0x00
#define ST_RIGHT            0x01
#define ST_CENTER             0x02
#define ST_SHADOW             0x100

class RscPicture
{
    idc = -1;
    type = CT_STATIC;
    style = ST_CENTER + ST_PICTURE;
    colorBackground[] = {0,0,0,0};
    colorText[] = {1,1,1,1};
    font = FONT_Z;
    sizeEx = 0.02;
};
 
class RscType
{
    idd = -1;
    movingEnable = 0;
    duration = 6;
};
 
class RscTitles
{
    titles[] = {"Image1"};
 
    class Image1 : RscType
    {
        controls[] = {"Image1_1"};
 
        class Image1_1: RscPicture
        {
            text = "ado.paa";
            x = 0.4;
            y = 0.3;
            w = 0.2;
            h = 0.25;
        };
    };
};

CodeDescription
text = "ado.paa";nom de l'image (Pensez à mettre le bon lien si jamais vous la mettez dans un sous-dossier)
x = 0.4;pour changer la position de l'image (horizontal)
y = 0.3;pour changer la position de l'image (vertical)
w = 0.2;pour changer la largeur de l'image
h = 0.25;pour changer la hauteur de l'image

init.sqf


Insérer la commande suivante dans le fichier init.sqf :

TitleRsc ["Image1","Plain",2];
Cette ligne va faire apparaitre ce qui se trouve dans la classe image, donc dans cet exemple sa va afficher notre logo.
Vous pouvez introduire ce code dans n'importe quel fichier/script.

Afficher plusieurs images


Deux images qui s'affiche en même temps


Si vous voulez mettre une seconde image qui s'affiche en même temps que la première, vous devez ajouter une nouvelle classe Image1_2 dans la classe Image1.
Surtout il ne faut pas oublier de rajouter la classe dans controls[].

// ...
 
class RscTitles
{
    titles[] = {"Image1"};
 
    class Image1 : RscType
    {
        controls[] = {"Image1_1","Image1_2"};
 
        class Image1_1: RscPicture
        {
            text = "ado.paa";
            x = 0.4;
            y = 0.3;
            w = 0.2;
            h = 0.25;
        };
 
        class Image1_2: RscPicture
        {
            text = "ado2.paa";
            x = 0.2;
            y = 0.1;
            w = 0.2;
            h = 0.25;
        };
    };
};

Deux images qui s'affiche une après l'autre


Si vous voulez mettre une seconde image mais qui s'affiche après la première, vous devez ajouter une nouvelle classe image2 dans la classe RscTitles.
Surtout il ne faut pas oublier de rajouter la classe dans titles[].

// ...
 
class RscTitles
{
    titles[] = {"Image1","Image2"};
 
    class Image1 : RscType
    {
        controls[] = {"Image1_1"};
 
        class Image1_1: RscPicture
        {
            text = "ado.paa";
            x = 0.4;
            y = 0.3;
            w = 0.2;
            h = 0.25;
        };
    };
 
    class Image2 : RscType
    {
        controls[] = {"Image2_1"};
 
        class Image2_1: RscPicture
        {
            text = "ado2.paa";
            x = 0.2;
            y = 0.1;
            w = 0.2;
            h = 0.25;
        };
    };
};

Pour cet exemple, il faudra modifier le code dans le fichier init.sqf :

TitleRsc ["Image1","Plain",2];
sleep 5;
TitleRsc ["Image2","Plain",2];

On appellera la seconde image 5 secondes après la première (sleep 5).