OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Les surfaces Ven 11 Mai 2007 - 19:36 | |
| :p_hello: Ca fait plusieurs mois que je m'intéresse aux surfaces. Mais même avec l'aide de GM, je n'ai jamais compris comment elles fonctionnent, ni même exactement à quoi elles servent... Pouvez-vous m'expliquer s'il vous plaît? Je vous serais très reconnaissant si vous m'aidez. @+ |
|
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Les surfaces Ven 11 Mai 2007 - 19:46 | |
| on sait faire du bloom avec des surfaces. c'est tout ce que je sais |
|
Nic353 Utilisateur confirmé: Rang ****
Messages : 838 Localisation : Je suis partout Projet Actuel : 2Day of Defeat
| Sujet: Re: Les surfaces Ven 11 Mai 2007 - 20:56 | |
| Tu peux faire des lumière avec, du rts frog... Explication (se peu que sa sois faut): C'est une surface qui recouvre la room au complet , de la couleur et alpha...que tu veux.
Tu peut faire un objet qui la surprime ou fait découvrir se quit se cache dessous |
|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Re: Les surfaces Ven 11 Mai 2007 - 21:52 | |
| Merci. Mais comment l'utiliser? |
|
Nic353 Utilisateur confirmé: Rang ****
Messages : 838 Localisation : Je suis partout Projet Actuel : 2Day of Defeat
| Sujet: Re: Les surfaces Ven 11 Mai 2007 - 22:03 | |
| Le fichier aide est la pour toi: - Spoiler:
Dessin de Surfaces Ces fonctionnalités ne sont disponibles que dans la version enregistrée de Game Maker. Dans certains cas, vous souhaiterez ne pas dessiner directement à l'écran mais plutôt sur un canevas qui pourra ulérieurement être réutilisé pour dessiner d'autres choses sur l'écran. Ce type de canevas est appelé une surface. Par exemple, imaginons que vous souhaitiez que l'utilisateur puisse dessiner sur l'écran. Il ne devra pas pouvoir le faire directement sur l'écran (car le dessin sera supprimé à chaque nouveau step). Vous souhaiterez donc que le dessin soit fait sur une surface distincte qui sera ensuite copiée à l'écran à chaque step. Ou bien encore vous voudrez utiliser une texture qui devra changer à intervalles réguliers.
L'utilisation de surfaces vous permettra de réaliser tout ceci et de plus, c'est assez simple à utiliser. Vous devrez créer en premier lieu une surface. Ensuite, vous indiquerez les opérations de dessin qui devront s'afficher sur cette surface. A partir de ce moment là, toutes les fonctions de dessin opéreront sur la surface en question. Une fois que vous en aurez terminé, vous réinitialiserez la cible de dessin et les opérations de dessin ultérieurs s'afficheront de nouveau sur cet écran. Vous pouvez dessiner sur la surface de l'écran de différentes manières ou encore utiliser la surface comme une texture. A ce sujet, il y a certaines choses pour lesquelles vous devrez être prudent. Veuillez consulter les remarques à la fin de cette section.
Les fonctions suivantes existent et concernent les surfaces.
surface_create(w,h) Crée une surface de largeur et hauteur indiquées. Retourne l'ID de la surface qui devra être utilisé dans tous les appels ultérieurs de fonctions. Veuillez prendre note que la surface ne sera pas effacée. Ceci incombe à l'utilisateur de le faire délibérément (définissez-la comme une cible puis appellez la fonction d'effacement appropriée.) surface_free(id) Libére la mémoire utilisée par la surface. surface_exists(id) Retourne si la surface identifiée par l'ID indiqué existe déjà.
surface_get_width(id) Retourne la largeur de la surface. surface_get_height(id) Retourne la hauteur de la surface. surface_get_texture(id) Retourne la texture correspondant à la surface. Ceci peut être utilisé pour afficher des objets texturés avec l'image de la surface.
surface_set_target(id) Définit la surface indiquée comme étant la cible d'affichage. Ainsi, toutes les opérations futures d'affichages opéreront sur cette surface. Cette commande réinitialise la projection afin de couvrir simplement la surface. surface_reset_target() Réinitialise la cible d'affichage sur l'écran de destination courant.
surface_getpixel(id,x,y) Retourne la couleur du pixel correspondant à la position (x,y) de la surface. A utiliser avec précaution car cela n'est pas très rapide. surface_save(id,fname) Sauvegarde la surface en tant qu'image BMP dans le fichier de nom filename. Utile pour faire une copie d'écran de la surface. surface_save_part(id,fname,x,y,w,h) Sauvegarde une partie de la surface dans le fichier de nom filename.
draw_surface(id,x,y) Affiche la surface à la position (x,y). (sans mélange de couleur (pas de fondu) ni transparence alpha). draw_surface_stretched(id,x,y,w,h) Affiche la surface étendue à la région indiquée. draw_surface_tiled(id,x,y) Affiche la surface sous forme de tuiles (tiles) de manière à ce qu'elle remplisse entièrement la room. draw_surface_part(id,left,top,width,height,x,y) Affiche la partie indiquée de la surface avec origine en position (x,y). draw_surface_ext(id,x,y,xscale,yscale,rot,color,alpha) Affiche la surface avec mise à l'échelle et orientation tout en utilisant une couleur de mélange (utilisez c_white pour ne pas avoir de couleur de fondu) et une transparency alpha (0 à 1). draw_surface_stretched_ext(id,x,y,w,h,color,alpha) Affiche la surface étendue à la région indiquée. La couleur est celle de la couleur de fondu et alpha correspond aux paramétres de transparence. draw_surface_tiled_ext(id,x,y,xscale,yscale,color,alpha) Affiche la surface sous forme de tuiles (tiled) de façon à remplir complétement la room mais désormais avec une mise à l'échelle à l'aide des facteurs xscale et yscale et un paramétrage de la couleur et de la transparence. draw_surface_part_ext(id,left,top,width,height,x,y,xscale,yscale,color,alpha) Affiche la partie indiquée de la surface avec origine en position (x,y) mais maintenant avec une mise à l'échelle à l'aide des facteurs xscale et yscale et un paramétrage de la couleur et de la transparence. draw_surface_general(id,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) La fonction d'affichage la plus couramment utilisée. Elle affiche la partie indiquée de la surface avec origine en position (x,y) mais désormais avec une mise à l'échelle à l'aide des facteurs xscale et yscale, un angle de rotation rot, une couleur pour chacun des quatre vertices (supérieur gauche, supérieur droit, inférieur droit et inférieur gauche) et une valeur de transparence alpha.
surface_copy(destination,x,y,source) Effectue une copie de la surface source à la position (x,y) dans la surface de destination. (sans aucune possibilité de fondu ou de mélange de couleur). surface_copy_part(destination,x,y,source,xs,ys,ws,hs) Copie la partie indiquée de la surface source à la position (x,y) dans la surface de destination. (sans fondu ni mélange de couleur).
Veuillez noter qu'il n'existe pas de fonction permettant de copier une partie de l'écran dans une surface (ceci est impossible en raison d'éventuelles différences de format entre l'écran et les surfaces). Si nécessaire, vous devrez définir une nouvelle surface comme destination de rendu puis réafficher la room. Vous pourrez ensuite utiliser les routines de copie de surfaces pour obtenir la partie qui vous intéresse.
Notez qu'il est cependant possible de créer des sprites et des arrière-plans à partir de surfaces. Pour plus d'informations sur ce sujet, veuillez consulter la section sur la modification des ressources (changing resources).
Certaines précautions doivent être prises lors de l'utilisation de ces fonctions. En particulier, faîtes bien attention aux choses suivantes :
Vous ne devrez jamais modifier la cible d'affichage alors que vous dessinez actuellement sur l'écran soit en d'autres termes, ne jamais utiliser cette cible dans les événements d'affichages (drawing events). Cela pourrait poser de sérieux problèmes avec la projection et le viewport. Les surfaces ne fonctionnent pas correctement dans le mode 3D. Vous ne pouvez les utiliser alors que vous n'êtes pas dans le mode 3DD (en invoquant la fonction d3d_end() avant d'utiliser les surfaces mais une fois que vous réentrerez dans le mode 3D, les surfaces seront détruites. Pour des raisons de vitesse, la surface est conservée uniquement en mémoire vidéo. Aussi, vous pourriez perdre la surface si par exemple, vous modifiez la résolution d'écran ou encore si votre effaceur d'écrans se met en fonction. Les surfaces ne seront pas sauvegardées lorsque vous effectuerez une sauvegarde de votre jeu.
<< Traduction française par Philippe Ragni - (2005) >>
|
|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Re: Les surfaces Sam 12 Mai 2007 - 6:59 | |
| J'ai lu plusieurs fois le fichier d'aide mai je n'ai jamais compris. En fait, c'est cette fonction que je ne comprends pas : - Citation :
- surface_set_target();
Une question qui pourrait m'aider : La surface en elle même qu'est ce que c'est? Une image de l'écran? Une texture? ... |
|
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: Les surfaces Sam 12 Mai 2007 - 12:07 | |
| c'est normal, pour créer une surface c'est comme les particules, on leur assigne une variable : - Code:
-
variable_qui_represente_surface=surface_create(largaur,hauteur)
et pour utiliser la surface dans draw tu fait ainsi : - Code:
-
surface_set_target(variable_qui_represente_surface); { t'est actions, elles seront déssiner unitquement sur ta surface, c'est pas plus dur que sa. }
|
|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| |
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: Les surfaces Dim 13 Mai 2007 - 22:09 | |
| derien, j'ai appris sa en 15 minute a peut pret |
|
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Les surfaces Lun 14 Mai 2007 - 20:10 | |
| Pas mal pour moi aussi, je m'y intéresse bien aussi mais j'ai un peu du mal. [surtout que l'on ne peut pas s'en servir quand la 3D est active puisque l'allumage de la 3D [D3D_start()] efface tout les surface si j'ai bien compris et interdit que l'on en crée |
|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Re: Les surfaces Lun 14 Mai 2007 - 20:26 | |
| - L'aide de GM a écrit:
- Les surfaces ne fonctionnent pas correctement dans le mode 3D. Vous ne pouvez les utiliser alors que vous n'êtes pas dans le mode 3DD (en invoquant la fonction d3d_end() avant d'utiliser les surfaces mais une fois que vous réentrerez dans le mode 3D, les surfaces seront détruites.
|
|
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Les surfaces Jeu 17 Mai 2007 - 12:49 | |
| Oui, c'est bien ce que j'avais lu. Tu sais, j'ai lu la bible de GM au moins xxxxxx foi :-D Sinon, en surface, je me suis pas encore trop plongé dessus. Donc me demande pas, je m'y panche dessu cet été Si je parviens à tout bien maitriser cet été, je te tiendrais au courant, car peut être que tu seras toujours interessé |
|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Re: Les surfaces Jeu 17 Mai 2007 - 13:13 | |
| On pourrait s'y mettre ensemble cet été. :-D On s'entraiderai si on ne comprend pas et on pourrait s'échanger nos expériences et nos problèmes. |
|
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Les surfaces Ven 18 Mai 2007 - 22:18 | |
| Ca marche! Mais j'ai une question : es tu francais ou canadien ? Parce que pour Rem_101 par exemple, j'aime bien qu'on se téléphone au lieu d'écrire pendant 3 heures... Les surfaces, que de choses magnifiques à prévoir Mon premier chalenge de cet été |
|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Re: Les surfaces Sam 19 Mai 2007 - 7:11 | |
| |
|
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Les surfaces Ven 1 Juin 2007 - 0:48 | |
| |
|
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: Les surfaces Dim 3 Juin 2007 - 18:08 | |
| redemandez moi pour ke je face un ptit tuto les 2 amoureux |
|