|
| Problème de rotation de sprite en 3D [résolu] | |
| | Auteur | Message |
---|
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Problème de rotation de sprite en 3D [résolu] Jeu 15 Fév 2007 - 19:45 | |
| Dans mon Mario Paper, j'utilise cela dans un draw : d3d_transform_set_identity(); d3d_transform_set_rotation_y(turn) d3d_transform_add_translation(x,y,depth) draw_sprite_ext(sprite_index,-1,0,0,image_xscale,image_yscale,image_angle,c_white,image_alpha); d3d_transform_set_identity(); Cela me permet d'avoir un effet feuille de papier avec pour centre, un axe vertical passant par le centre de mon Mario. Le problème était que cela ne marche que losque la depth de mon Mario vaut zéro Voici les propositions de Daminetreg et de [TDT] sur un topic similaire : TheDarkTiger d3d_transform_set_identity(); d3d_transform_add_rotation_z(angle); d3d_transform_add_translation(x,y,0); d3d_draw_block(-16,-16,-10, 16,16,100,(background3),1,1); d3d_transform_set_identity(); Daminetreg d3d_transform_set_rotation_axis(xa,ya,za,angle) Sets the transformation to a rotation around the axis indicated by the vector with the indicated amount. J'ai fais divers teste et je ne suis pas parvenu à corriger ce problème qui dois être pas compliqué pour ceux qui ont bien compris le système des transformations (pas moi) L'axe x est vers la droite L'axe y est vers le bas L'axe depth est vers le fond et négatif. Mon but : Mario
Dernière édition par le Lun 26 Fév 2007 - 21:52, édité 3 fois |
| | | [TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Ven 16 Fév 2007 - 17:09 | |
| bha d3d_transform_set_identity(); d3d_transform_add_rotation_z(angle); d3d_transform_add_translation(x,y,0); d3d_draw_block(-16,-16,-10, 16,16,100,(background3),1,1); d3d_transform_set_identity(); n'affichera pas du tout ce que tu veux ... il faudrait plutôt : - Code:
-
var tex; tex=sprite_get_texture(sprite_index,image_single); d3d_transform_set_identity(); d3d_transform_set_rotation_y(turn) d3d_transform_add_translation(x,y,depth) d3d_draw_wall(-16,-16,0, 16,16,0,tex,1,1); d3d_transform_set_identity(); et ca devrait arche |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Sam 17 Fév 2007 - 10:49 | |
| Bon ba eu, j'ai essayé le code et voila ce qui se passe : tout est normal sauf que le Mario deviend invisible. Il fallait bien tout mettre dans le draw ?
Bon, sinon ce code : d3d_transform_set_identity(); d3d_transform_set_rotation_y(turn) d3d_transform_add_translation(x,y,depth) draw_sprite_ext(sprite_index,-1,0,0,image_xscale,image_yscale,image_angle,c_white,image_alpha); d3d_transform_set_identity();
marche bien à condition que la depth de Mario reste égale à 0. Le truc c'est que comme parfois je veux simuler une plateforme 3D, il me faud faire varier la depth...
je t'envois par MSN un exe de mon Mario pour que tu vois ce qu'il se passe quand sa marche, et lorsque tu avanceras, la depth augmentera, à ce moment la, tu te retournes pour déclencher l'effet feuille de papier et tu véras qu'il ne marchera plus correctement... Peu être que en voyant le problème, tu seras capables de trouver la solution, parsque trouver la solution ne urge pas, je peux faire plein d'autre truc en attendant, mais cela me retirerait une épine du pied... Sa fait un moment que j'essais de bidouiller la dessus, mais je ne trouve pas de solution...
Merci encore une fois à [TheDarkTiger] pour tout le mal qu'il se donne |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 19 Fév 2007 - 21:32 | |
| Je commence à desespérer... :snif2: |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 19 Fév 2007 - 22:26 | |
| - [TheDarkTiger] a écrit:
- bha
d3d_transform_set_identity(); d3d_transform_add_rotation_z(angle); d3d_transform_add_translation(x,y,0); d3d_draw_block(-16,-16,-10, 16,16,100,(background3),1,1); d3d_transform_set_identity();
n'affichera pas du tout ce que tu veux ...
il faudrait plutôt :
- Code:
-
var tex; tex=sprite_get_texture(sprite_index,image_single); d3d_transform_set_identity(); d3d_transform_set_rotation_y(turn) d3d_transform_add_translation(x,y,depth) d3d_draw_wall(-16,-16,0, 16,16,0,tex,1,1); d3d_transform_set_identity(); et ca devrait arche Le x et y d'origine sont au centre de Mario, ton code ok ? Parsque sinon , je ne vois rien |
| | | [TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Dim 25 Fév 2007 - 16:52 | |
| hola garçon ! je revien seulement de vacances, et je tombe sur ce topic si ca marchepas, essaye : - Code:
-
var tex; tex=sprite_get_texture(sprite_index,image_single); d3d_transform_set_identity(); d3d_transform_set_rotation_y(turn) d3d_transform_add_translation(x,y,depth) d3d_draw_wall(-16,0,-16,16,0,16,tex,1,1); d3d_transform_set_identity(); |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 26 Fév 2007 - 1:08 | |
| Je viends de tester, bon, le Mario semble très loin et minuscule, il fini meme par disparaitre... donc bon, et pour la rotation , il est trop petit alors je ne peux pas dire... :snif2: J'ai encore testé des truc mais bon... Sans succès...
Je crois que je vais désactiver la feuille de papier en attendant de trouver une solution... C'est curieux ce problème de rotation en 3D...
Si tu as d'autre idées... Merci pour ton aide On en viendra bien a bout un jour :7_smiley: |
| | | [TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 26 Fév 2007 - 12:50 | |
| yep, ya pas de blem si tu veux, envoi la source, mais si elle fait 25 Mo on va éviter... |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 26 Fév 2007 - 14:59 | |
| Le gm6 est léger, mais pour pouvoir compiler, il te faudrait un lecteur E, puis créer un dossier et mettre les DLL de GMphysique, Freememory et d'autre bref... Si tu as un lecteur E, je t'envérais le dossier par MSN puis le source... Looool, tu vas peu être un peu aluciner en voyant le source... Evidement, tu le gardes pour toi, tu es le seul autorisé à le voir... |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 26 Fév 2007 - 15:28 | |
| |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Lun 26 Fév 2007 - 21:52 | |
| RESOLUBon, dans mon esprit, dans ma vision de GameMaker, il existe x,y, depth et aussi un x_offset , y_offset et un d3d_set_depth(depth_offset) Ceux qui ont saisit à 100% le fonctionnement des transformations (c'est à dire pas moi) comprendront peut être un peu l'idée général... Le problème venait de l'axe de rotation qui ne restait pas entre les deux pied de Mario quand celui ci avait une profondeur différente de zéro. Il me manquait une valeur d3d_set_depth(0) à mettre à zéro... Je répète, ne me demandez pas d'esplication... - Citation :
- d3d_transform_set_identity();
d3d_transform_add_rotation_y(turn) d3d_transform_add_translation(x,y,depth) d3d_set_depth(0) draw_sprite_ext(sprite_index,-1,0,0,image_xscale,image_yscale,image_angle,c_white,image_alpha); d3d_transform_set_identity(); Un grand merci au Tigre tout sombre pour son aide |
| | | [TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Mar 27 Fév 2007 - 18:19 | |
| Tigre tout sombre ? encore un pseudo :snif2: mais bon, le problèmme est résolu, c'est l'essenciel |
| | | Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] Mar 10 Avr 2007 - 17:58 | |
| J'avais pas poster ma solution :honte: - Citation :
- d3d_transform_set_identity();
d3d_transform_add_rotation_y(turn) d3d_transform_add_rotation_z(zturn) d3d_transform_add_translation(x,y,depth) //d3d_transform_add_translation(0,x,depth) d3d_set_depth(0) draw_sprite_ext(sprite_index,-1,0,0,image_xscale,image_yscale,image_angle,c_white,image_alpha); d3d_transform_set_identity(); |
| | | Contenu sponsorisé
| Sujet: Re: Problème de rotation de sprite en 3D [résolu] | |
| |
| | | | Problème de rotation de sprite en 3D [résolu] | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |