|
||
Fonctions de Dessin AvancéesCes fonctionnalités ne sont disponibles que dans la version enregistrée de Game Maker.Nous avons vu et décrit précédemment un certain nombre de fonctions de base concernant l'affichage. Vous trouverez ici des fonctions supplémentaires qui vous offriront encore davantage de possibilités. En premier lieu, nous trouvons les fonctions pour afficher des formes (shapes) avec des couleurs en arc-en-ciel. En second lieu, nous détaillerons les fonctions permettant d'afficher des polygones plus généraux puis enfin, nous parlerons de la possibilité d'afficher des textures projetées sur des polygones. Il existe les versions évoluées suivantes venant compléter les fonctions de base pour l'affichage. Chacune d'entre elles présente des paramétres supplémentaires concernant la couleur utilisée afin de déterminer la couleur des différents vertices. La couleur standard d'affichage n'est pas utilisée par ces fonctions.
draw_point_color(x, y, col1) Affiche un point à la position (x,y) dans la couleur indiquée col1. Vous avez également la possibilité de dessiner de plus grandes primitives. Le fonctionnement est quelques peu différent. Vous commencerez à spécifier la primitive que vous souhaitez afficher. Ensuite, vous indiquerez les vertices (sommets) de la primitive puis enfin, vous terminerez la primitive qui sera ensuite affichée. Six types de primitives existent :
pr_pointlist Les vertices sont formés d'un jeu de points. Les fonctions suivantes existent pour les primitives de dessin.
draw_primitive_begin(kind) Débute une primitive du type indiqué. Il est enfin possible de dessiner des primitives en utilisant des sprites ou des arrière-plans comme textures. Lors de l'utilisation de texture, l'image est placée sur la primitive avec redimensionnement afin que cette dernière remplisse entièrement la primitive. Les textures sont utilisées pour ajouter des détails aux primitives, ex: un mur de briques. Pour utiliser des textures, vous devrez en premier lieu obtenir l'ID de la texture que vous souhaitez utiliser. Pour réaliser cela, utilisez les fonctions suivantes :
sprite_get_texture(spr, subimg) Retourne l'ID de la texture correspondant à la sous-image subimg du sprite mentionné. La texture choisie peut ne pas être actuellement en mémoire vidéo. Le système la chargera alors pour vous en cas de besoin mais parfois, vous souhaiterez le faire par vous-même. Pour cela, il existe les fonctions suivantes :
texture_preload(texid) Charge immédiatement la texture en mémoire vidéo. Pour ajouter des textures à des primitives, vous devrez indiquer quelles parties des textures et à quel endroit ces dernières doivent être placées sur la primitive. Les positions de la texture sont indiquées avec des valeurs entre 0 et 1 mais cela peut poser problème. En effet, la taille des textures doit être une puissance de 2 (soit par exemple 32x32 ou 64x64). Si vous souhaitez utiliser des sprites ou des arrière-plans en guise de textures, il sera préférable de vérifier auparavant qu'ils possédent cette taille. Sinon, cela ne marchera pas. Pour déterminer quelle partie de la texture est actuellement utilisée, vous pourrez utiliser les deux fonctions suivantes. Elles retournent une valeur entre 0 et 1 qui indique la largeur ou la hauteur de l'actuelle partie de la texture en cours d'utilisation. En précisant cette valeur comme coordonnée de texture, cela indiquera le côté droit ou inférieur de la texture.
texture_get_width(texid) Retourne la largeur de la texture correspondant à l'ID indiqué. La largeur doit être comprise entre 0 et 1. Vous utiliserez les fonctions suivantes pour dessiner des primitives texturées :
draw_primitive_begin_texture(kind, texid) Débute une primitive de type indiqué et avec la texture mentionnée. Il y a trois fonctions influençant la manière dont les textures sont affichées :
texture_set_interpolation(linear) Indique si l'on doit utiliser une interpolation linéaire (true) ou au contraire utiliser le point le plus proche (false). Une interpolation linéaire donnera des textures plus douces mais pourra aussi donner des résultats légérement plus troubles. De plus, cela prendra parfois plus de temps pour les afficher. Ce réglage influencera également l'affichage des sprites et des arrière-plans. La valeur par défaut est false (cette valeur peut être changée via les paramétres généraux de jeu). Il existe deux autres fonctions qui seront utiles pas uniquement pour dessiner des textures. Habituellement, les primitives sont mélangées à l'aide d'un fondu avec l'arrière-plan en utilisant la valeur alpha. Il vous est possible de préciser la manière dont cela doit se produire. En plus du mode normal, il est possible d'indiquer que la nouvelle couleur doit être ajoutée à celle existante ou encore soustraite de la couleur existante. Cela peut être utilisé pour créer par exemple des spots de lumière ou encore des ombres. Il est également possible de faire en sorte de prendre en compte au maximum la nouvelle couleur ou celle déjà existante. Cela permet d'éviter le phénomène d'effets de saturation qui survient lors de l'ajout de couleurs. Veuillez noter qu'a la fois les fonctions de soustraction et de maximilisation ne prennent pas pleinement en compte la valeur alpha (DirectX ne le permettant pas). Il est donc préférable de s'assurer que la zone en dehors soit noire. Il y a pour cela deux fonctions. La première vous donnera seulement quatre options qui ont déjà été décrites. La seconde fonction vous proposera davantage de possibilités. Il vous sera nécessaire d'expérimenter par vous-même en utilisant les différents paramétres. Si vous parvenez à bien utiliser ces fonctions, vous arriverez à créer par exemple des explosions intéressantes ou encore des effets de halo spectaculaires.
draw_set_blend_mode(mode) Indique si le mode de mélange de couleurs doit être utilisé. Les valeurs suivantes sont disponibles : bm_normal, bm_add, bm_subtract et bm_max. N'oubliez pas de remettre le mode à la valeur normal après utilisation de cette fonction car sinon, les autres sprites et même les arrière-plans seront affichés avec le nouveau mode de mélange de couleurs. L'affichage de primitives à base de textures demande un peu de travail de votre part mais offre en contre-partie de grands résultats. Vous pourrez même les utiliser pour faire des jeux en 3D. << Traduction française par Philippe Ragni - (2005) >> |
||
|
||
|
You can also read this manual on one single long page (± 1.5 mb)
Also available in: ![]() Download helpfile
|
||





