V. Notes générales sur Gosu▲
Toutes les fonctions et les classes sont contenues dans le module Gosu.
Lorsqu'un paramètre de type Gosu::Color est demandé, on peut mettre à la place un entier de la forme : 0xAARRGGBB (ici en hexadécimal).
- A = Code alpha (255 : aucune transparence, 0 : transparence totale)
- R = Code pour le rouge
- G = Code pour le vert
- B = Code pour le bleu
On peut utiliser une couleur lors du dessin pour modifier la couleur originale de l'image. Néanmoins, cela ne peut que réduire les codes A, R, G, B de ces images : pour R, G, B cela aura tendance à faire tendre l'image vers le sombre et pour A cela fera tendre l'image vers la transparence. Cet effet peut être utilisé pour changer la couleur d'une image blanche (voir l'exemple final, où des étoiles blanches sont dessinées de toutes les couleurs).
Pour les paramètres de mode pour les fonctions de dessins, les valeurs possibles sont :
- :default
- :additive
Profondeur d'un dessin : lorsque deux dessins occupent la même place, il faut déterminer lequel écrase l'autre : pour cela certaines fonctions permettent de spécifier une profondeur : le dessin de profondeur la plus grande sera dessinée sur tous les autres. Si deux dessins ont la même priorité, le dernier dessiné écrasera l'autre (voir l'axe de profondeur).
Paramètre facultatif : tous paramètres ayant une valeur par défaut (=valeur) peut être ignoré lors de l'appel : il aura alors sa valeur par défaut. Néanmoins, seuls les derniers paramètres d'une fonction peuvent être ignorés :
f(a, b=0, c=3)
L'appel peut être :
f(4) # a = 4, b = 0, c = 3
f(2, 3) # a = 2, b = 3, c = 3
f(4, 5, 2) # a = 4, b = 5, c = 2
On ne peut pas donner une valeur à c tout n'en donnant pas à b !
Les angles dans Gosu:
Gosu n'utilise pas les radians comme la bibliothèque C standard. Les angles dans Gosu sont compris entre 0 et 360 (automatiquement une valeur négative ou supérieur à 360 est transformée). Un angle de 0 signifie " orienté vers le haut ". Les angles augmentent dans le sens des aiguilles d'une montre.
L'axe de profondeur (Z-Ordering) : toutes les opérations de dessins dans Gosu accepte en plus des arguments de position x et y un argument de profondeur appelé z : c'est un entier entre 0 et 255. Les objets dessinés avec une profondeur plus grande seront dessinés sur les objets ayant une profondeur plus petite. Si deux objets ont la même position z, ils seront dessinés dans l'ordre d'appel des fonctions. Si vous ne voulez pas utiliser l'axe des profondeurs, mettez simplement z à 0 tout le temps.
Bordure floue ou nette : lors du chargement des images, on peut spécifier si les contours de l'image doivent rester nette ou pas. En effet, à cause de l'accélération 3D, les contours des images ont tendances à devenir flou et à " fondre " avec le décor. Cela est parfois est un désavantage (par exemple pour les tests). Généralement, pour obtenir une image plus belle, on prendra des bordures floues. Ce paramètre est sous la forme d'un booléen :
- Vrai = bordure nette
- Faux = bordure floue
Coins d'une image : Certaines fonctions attendent des arguments pour les 4 coins d'un rectangle (exemple : Window#draw_quad). L'ordre des coins est important lors du passage des paramètres. Le coin n°1 sera celui en haut à gauche, le coin n°2 en haut à droite, le coin n°3 en bas à gauche et la 4ème en bas à droite (sens de lecture normale : de haut en bas, de droite à gauche).
Couleurs transparentes : lorsque l'on affiche une image, on veut généralement qu'elle se fonde dans le décor. Parfois notre image (toujours contenue dans un rectangle) n'occupe pas tout le rectangle : que faire des pixels en trop pour qu'il ne s'affiche pas ?
Et bien tout simplement un utilisant la couleur de code RGB (255,0,255) (violet-rose). Cette couleur, généralement peu utilisé dans les jeux, sera considérée par Gosu comme transparente ! (pour les images de type bitmap. Pour les images de type png, on mettra l'alpha à 0).