Textdraw FR
From SA-MP Wiki
Contents |
Qu'est ce qu'un TextDraw ?
Un TextDraw est un texte qui sera dessiné sur l'écran. A l'instat de SendClientMessage ou encore GameTextForPlayer, les TextDraws peuvent être affichés sur l'écran n'importe où, à n'importe quel moment et pendant une durée illimitée. Les TextDraws peuvent être de simples textes tels qu'une adresse de site, ou encore être plus complexes tels qu'une barre de progression;
Déclaration de variable
Lorsque vous créez un TextDraw, vous pouvez décider si le TextDraw que vous venez de créer sera global (ex: l'adresse de votre site, une annonce globable) ou si il sera différent pour chaque joueur (ex: nombre de tués, nombre de morts, score).
TextDraws Globaux
Un TextDraw global est facile à faire et ne requiert qu'une variable. Cette variable peut être utilisée pour modifier le TextDraw ou ne l'afficher qu'à certains joueurs. La variable doit donc être une variable globale, créée en dehors de toute fonction ou callback, possédant le préfixe Text:.
new Text:gMyText = Text:INVALID_TEXT_DRAW;
TextDraw par joueur
Un TextDraw par joueur est exactemement la même chose qu'un TextDraw Global, à la différence que le TextDraw n'est crée que pour un seul joueur. C'est utile pour les TextDraws qui sont uniques aux joueurs, tels que des statistiques. Ils peuvent être utilisés pour outrepasser la limite de TextDraw globaux, actuellement vous pouvez créer 256 TextDraws au maximum par joueur. C'est aussi meilleur à gérer, ils se détruisent automatiquement lorsque le joueur se déconnecte.
new PlayerText:gMyPlayerText[MAX_PLAYERS] = {PlayerText:INVALID_TEXT_DRAW, ...};
Note | Un tableau est toujours nécessaire pour le variable, les ID de TextDraws diffèrent d'un joueur à l'autre ! |
Les noms de fonctions ne changent pas beaucoup, 'TextDraw' devient 'PlayerTextDraw', à une exception: CreatePlayerTextDraw ('TextDrawSetString' devient'PlayerTextDrawSetString').
Créer le TextDraw
Après avoir crée la variable/le tableau où stocker les ID de vos TextDraws, vous pouvez procéder pour créer le TextDraw lui-même. Pour les TextDraws globaux, la création doit s'effectuer dans OnGameModeInit. Pour créer le TextDraw, la fonction TextDrawCreate doit être utilisée.
Notez que cette fonction ne fait que créer le TextDraw, les autres fonctions doivent être utilisées pour modifier et/ou afficher le TextDraw au(x) joueur(s).
x | Les coordonnées X où créer le TextDraw. |
y | Les coordonnées Y où créer le TextDraw. |
text[] | Le texte du TextDraw. |
Retourne:
Processons maintenant à la création du TextDraw:
public OnGameModeInit() { gMyText = TextDrawCreate(320.0, 240.0, "Salut tout le monde !"); return 1; }
On a crée un TextDraw au centre de l'écran où il est écrit "Salut tout le monde !".
Modifier la police
Il y a 4 polices utilisables dans un TextDraw:
ID | Info | Astuce |
---|---|---|
0 | La police de San Andreas. | Utilisez le en haut d'un TextDraw ou en guise de titre, pas en tant que police principale. |
1 | Inclut des lettres minuscules et majuscules. | Peut être utilisée pour beaucoup de texte |
2 | N'inclut que des lettres majuscules. | Peut être utilisée à divers moments. |
3 | Police de GTA | Conserve sa qualité si agrandie. Utile pour des textes larges. |
Depuis SA-MP 0.3d, une nouvelle police (id 4) peut être utilisée. This is used in combination with the TextDrawCreate and TextDrawTextSize functions to show a texture 'sprite' on the player's screen. We'll cover this later.
Afficher le TextDraw
Dans cet exemple, le TextDraw a été crée globablement dans OnGameModeInit, et sera affiché au joueur quand il se connectera.
Pour afficher un TextDraw pour un seul joueur, la fonction TextDrawShowForPlayer doit être utilisée.
playerid | L'ID du joueur qui verra le TextDraw s'afficher. |
text | L'ID du TextDraw à afficher. |
Retourne | Cette fonction ne retourne pas de valeur spécifique. |
public OnGameModeInit() { gMyText = TextDrawCreate(320, 320, "Hello World!"); return 1; } public OnPlayerConnect(playerid) { TextDrawShowForPlayer(playerid, gMyText); return 1; }