| Récupérer les coordonnées d'une collision [Résolu] | |
|
|
Auteur | Message |
---|
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Récupérer les coordonnées d'une collision [Résolu] Lun 11 Jan 2010 - 21:51 | |
| Voila, je suis bloqué sur un problème de collision.
En faite je cherche à savoir comment retrouver les coordonnées du point de collision entre 2 objets assez volumineux. En effet il me faudrais une assez grande précision, l'origine de ce objets sont insuffisant! Si vous avez un idée, solution?? Merci d'avance!
Dernière édition par kéheus-Rox le Sam 16 Jan 2010 - 15:16, édité 1 fois |
|
| |
Chulien Utilisateur confirmé: Rang *****
Messages : 2232
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Lun 11 Jan 2010 - 22:35 | |
| essaie les place_meeting et position_meeting si ce sont des cercles ou des carrés, utilise des variables du genre x_down x_up y_down y_up pour faire une boite
with (objetsàcollisioner) { if( contour de l'objet courant est imbriqué dans contour de l'objetàcollisioner faire ceci cela et trouve un truc non? }
ca dépend du but de ton programme et de la forme de tes objets |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Lun 11 Jan 2010 - 23:37 | |
| Desolé mais soit j'ai mal intérprété, soit ca ne marche pas.
En fait, c'est pour faire un laser avec image_xscal. Il aurait la longueur entre l'emetteur (où les coordonnées sont simple à trouver ^^) et la surface de l'objet qu'il touche. Et donc il me faut ces coordonnées pour éviter que le laser ne transpèrse l'objet, ne s'arrete avant, ou bug de divers forme.
Et donc la forme des objets sont trés variables, comme le début du rayon, ça rend la situation plus dur encore! |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mar 12 Jan 2010 - 0:05 | |
| laser_length(x,y,dir,obj,precision) tu donne les coordonnées de départ, la direction du laser, l'objet à toucher, et la precision, ça te sort la longueur du rayon, selon la precision choisie. - Code:
-
//laser_length(x,y,dir,obj_to_collide,precision) dir= argument2 _a=64 _l=64 precision=argument4
while (_a>precision) { while !collision_line(argument0,argument1,argument0+lengthdir_x(_l,dir),argument1+lengthdir_y(_l,dir),argument3,true,true) { _l+=_a } _l-=_a _a/=2 } return _l *message édité, avec un meilleur script après, tu peux faire varier _a (la longueur de test initiale) selon la distance approximative de l'objet à chercher, pour que ça aille plus vite. |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mar 12 Jan 2010 - 14:39 | |
| Merci à toi, mais ton code ne marche pas. Dans la plupart des cas ça fige, ecran noir, programme ne répond plus... Ou ça me sort un rayon de 1 pixel, et ca fait ramer le jeu, et ronfler l'ordi... J'ai éssayer de le remodifier mais toujours rien. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mar 12 Jan 2010 - 16:31 | |
| cette version marche. Pour plus de détails (voir un exemple), va dans la section "gml scripts" - Code:
-
//laser_length(x,y,dir,obj_to_collide,precision,lengthmax) dir= argument2 _a=16 _l=_a precision=argument4
while (_a>precision or _l>argument5) { while !collision_line(argument0,argument1,argument0+lengthdir_x(_l,dir),argument1+lengthdir_y(_l,dir),argument3,true,true) && _l<argument5 { _l+=_a } _l-=_a _a/=2 } return _l |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mar 12 Jan 2010 - 22:26 | |
| Ok j'ai regardé ton exemple dans la section script et en fait ton code ne marche pas pour mon cas. J'utilise un rayon de 32x1 et pas 1x1 comme ton exemple! Désolé mais ton script semble ne pas pouvoir m'aider dans cette situation. :non2: |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mer 13 Jan 2010 - 22:03 | |
| Désolé pour le double post, mais pour mon problème j'avais pensé a un code comme :
Var1=collision_line(x,y,x+lengthdir_x(300,direction),y+lengthdir_y(300,direction),Objet,1,1)
Pour l'instant je maitrise pas très bien les lengthdir. Mais la valeur 300 représente la taille maxi du rayon, donc il faudrais que je trouve l'Objet avant 300. Donc, Comment dit-on "de 0 à 300 en gml pour placer là dedans? :p_svp: |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mer 13 Jan 2010 - 22:17 | |
| Hohoho c'est ce que j'ai fait : tu fais une boucle for qui fait varier la longueur de 0 à 300 for (length=0;length<=300;length+=precision) {
} |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mer 13 Jan 2010 - 22:25 | |
| Oups désolé!!! Archi désolé je n'avais pas vu ca comme ça!! C'est que tu vois je ne sait pas me servir des boucle for, si tu me mi que ca marche, je test tout de suite! |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mer 13 Jan 2010 - 22:46 | |
| for(a=0;a<10;a+=2) { draw_text(0,10*a,string(a) }
ce que code crée une variable a (=0), repete la boucle en augmentant a de 2 à chaque boucle, et continue à répéter tant que a<10
Voilà comment ça marche. Pour voir un peu mieux, mais ce code dans un draw, histoire de voir ce que ça fait:! |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Mer 13 Jan 2010 - 23:25 | |
| Ok merci pour ces infos! Elles me seront seron forcément utiles dans l'avenir! Mais pour là, ca ne change rien en faite, mon code n'est pas bon, même avec ta boucle for. J'ai essayé dans tout les sens possibles, avec un tas de combinaison différentes mais toujour rien!! Collision_line ne doit pas être la bonne solution pour récupérer ces coordonnées :non: :non2:! |
|
| |
kéheus-Rox Utilisateur confirmé: Rang *
Messages : 193 Localisation : France, Allier, Petit patelin... Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] Sam 16 Jan 2010 - 15:15 | |
| En fait j'ai abandonné mon idée de rayon xscal. J'ai utilisé ton script, un peu (beaucoup) modifier et ca donne un rayon laser de très bonne qualité!! Il marche très bien ! :p_merci: :p_merci: et encore MERCI!! |
|
| |
Contenu sponsorisé
| Sujet: Re: Récupérer les coordonnées d'une collision [Résolu] | |
| |
|
| |
| Récupérer les coordonnées d'une collision [Résolu] | |
|