Dessiner des objets 2D

Etant donné que Game Maker ne peut pas dessiner (fonctions draw_) dans la view de Ultimate 3D, vous devrez utiliser Ultimate 3D lui même si vous voulez afficher quelque chose en 2D à un endroit. Dans ce but, Ultimate 3D dispose de deux fonctions pour afficher des textures, et quatres fonctions pour afficher du texte.

Afficher des textures

Débutons avec les fonctions destinées à l'affichage de textures 2D sur l'écran:

DrawTex(
TextureIndex,
X,
Y,
Scaling,
Rotation,
Alpha
)

TextureIndex
Ce paramètre est l'identifiant de la texture qui va être affichée. L'identifiant de la texture est la valeur que vous avez entré en tant que second paramètre lors du chargement de la texture en utilisant LoadTexture(...).

X, Y
La position, sur la fenêtre, où la texture doit être affichée (par rapport au coin haut gauche de la première view).

Scaling
L'échelle (scale) qui sera utilisée. 1 signifie aucun changement (100%), 0.5 la moitié de la taille, et 2 le double de celle-ci.

Rotation
Cet argument peut être utilisé pour faire pivoter la texture dans le sens inverse des aiguilles d'une montre, une valeur en degré est requise. Si la valeur est égale à 0 la texture ne subira aucune rotation.

Alpha
Ce paramètre doit se situer dans la fourchette allant de 0 à 255, où 0 indique qu'il n'y a pas d'opacité (totalement transparent) et 255 indique que l'image sera totalement opaque.

Si cette fonction n'offre pas toutes les fonctionnalités dont vous avez besoin, il en existe une seconde pour afficher des textures plus complexes. Fondamentalement, elle fait la même chose, toutefois il y a plus de possibilités pour modifier le résultat.

DrawTexEx(
TextureIndex,
Left, Top,
Width, Height,
X, Y,
ScalingX, ScalingY,
Rotation,
R, G, B, A
)

Left, Top, Width, Height
Ces arguments définissent la partie de la texture qui sera utilisée. Les arguments doivent rester dans la fourchette allant de 0 à 1. Ce sont des coordonnées de la texture. Les coordonnées de texture du coin supérieur gauche seront définies par left et top et le coin inférieur droit sera défini par left+width et top+height.

ScalingX, ScalingY 
L'échelle (scale) qui sera utilisée. 1 signifie aucun changement (100%), 0.5 la moitié de la taille, et 2 le double de celle-ci.

R, G, B, A
Ces arguments définissent la couleur à utiliser comme "matériel" pour afficher la texture. Ces valeurs doivent rester entre 0 et 255. A défini l'opacité, 0 pas d'opacité (totalement transparent) et 255 totalement opaque.

C'est tout ce que vous avez besoin connaitre pour afficher des textures.

Affichage du texte

L'affichage du texte est également très facile. Tout d'abord vous définissez une police d'écriture, puis vous l'utiliser pour afficher un texte. Pour définir la police, vous aurez besoin de la fonction suivante:

SetFont(
FontName,
FontIndex,
TextSize,
TextAttributes,
R,G,B,A
)

FontName
C'est le nom du fichier dans le répertoire des polices d'écriture de Windows, qui contient la police que vous souhaitez utiliser. Un exemple qui pourrait illustrer cela serait "Times New Roman" et "Arial".

FontIndex
Cet argument est l'identifiant auquel vous voulez associer la texture. Il fonctionne de la même façon que les identifiants des textures. L'indice valable le plus élevé est 99.

TextSize
La taille du texte, telle que vous la connaissez dans les programmes de bureautique.

TextAttributes
Les attributs du texte. 0 signifie que la police est normale, 1 signifie qu'elle est en gras, 2 en italique et 3 signifie gras et italique.

R, G, B, A
La couleur du texte. Ces valeurs doivent rester entre 0 et 255. A défini l'opacité, 0 pas d'opacité (totalement transparent) et 255 totalement opaque.

Un appel à cette fonction requière toujours un certain temps de calcul. C'est pour cette raison que je conseille de créer toutes les polices dans l'évènement create de l'objet control. Si vous voulez changer leur couleur, cela ne pose pas de problème. Vous pouvez, tout bonnement, utiliser la fonction suivante:

SetFontColor(
FontIndex,
R,G,B,A
)

FontIndex
L'identifiant de la police d'écriture que vous désirez modifier.

R, G, B, A
Les nouvelles couleurs de la police d'écriture. Ces valeurs doivent rester entre 0 et 255. A défini l'opacité, 0 pas d'opacité (totalement transparent) et 255 totalement opaque.

Lorsque vous avez terminé la création des polices d'écriture, vous pouvez les utiliser pour afficher du texte. Il y a deux façons d'afficher du texte. Vous pouvez choisir d'afficher, soit, du texte 2D standard, soit, afficher un texte dans la scène en 3D. Commençons par le plus simple: afficher du texte en 2D.

DrawText(
FontIndex,
X, Y,
Text
)

FontIndex
L'identifiant de la police d'écriture que vous allez utiliser pour afficher votre texte. (NdT: L'identifiant précedemment défini, lors du chargement des polices).

X, Y
La position du texte par rapport au bord supérieur gauche de la première view.

Text
Une chaîne de caractères qui contient le texte que vous désirez afficher.

Afficher un texte 3D est un petit peu plus compliqué. En fait, vous devez entrer une transformation complète (comme pour les primitives) à la place de n'entrer que X et Y.

Draw3DText(
Text,
FontIndex,
X, Y, Z,
RotX, RotY, RotZ,
ScalX, ScalY, ScalZ
)

Text
Une chaîne de caractères qui contient le texte que vous désirez afficher.

FontIndex
L'identifiant de la police d'écriture que vous allez utiliser pour afficher votre texte. (NdT: L'identifiant précedemment défini, lors du chargement des polices).

X, Y, Z, RotX, RotY, RotZ, ScalX, ScalY, ScalZ
La transformation du texte 3D. Pour obtenir des renseignements à propos de la signification des variables, jetez un coup d'oeil à la Transformation des primitives, du tutorial à propos des objets primitifs.

Notez que le texte 3D s'affichera toujours par dessus le reste de la scène, y compris au dessus des textures 2d et du texte.



© Christoph Peters. Certains droits réservés. (Traduction FR 04/2008, Franck Vernel / Damien Buhl).

Creative Commons License XHTML 1.0 Transitional