AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 Récupérer les coordonnées d'une collision [Résolu]

Aller en bas 
3 participants
AuteurMessage
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyLun 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
Revenir en haut Aller en bas
Chulien
Utilisateur confirmé: Rang *****
Chulien


Messages : 2232

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyLun 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
Revenir en haut Aller en bas
http://sites.google.com/site/chuliendev
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyLun 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!
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMar 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.

_________________
Récupérer les coordonnées d'une collision [Résolu] Control-commentTous les icones de gm utilisables sur le cbna ICI  Récupérer les coordonnées d'une collision [Résolu] Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMar 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.
triste
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMar 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

_________________
Récupérer les coordonnées d'une collision [Résolu] Control-commentTous les icones de gm utilisables sur le cbna ICI  Récupérer les coordonnées d'une collision [Résolu] Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMar 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:
Revenir en haut Aller en bas
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMer 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:
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMer 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)
{

}

_________________
Récupérer les coordonnées d'une collision [Résolu] Control-commentTous les icones de gm utilisables sur le cbna ICI  Récupérer les coordonnées d'une collision [Résolu] Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMer 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!
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMer 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:!

_________________
Récupérer les coordonnées d'une collision [Résolu] Control-commentTous les icones de gm utilisables sur le cbna ICI  Récupérer les coordonnées d'une collision [Résolu] Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptyMer 13 Jan 2010 - 23:25

Ok merci pour ces infos! Elles me seront seron forcément utiles dans l'avenir! happy1
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:!
Revenir en haut Aller en bas
kéheus-Rox
Utilisateur confirmé: Rang *
kéheus-Rox


Messages : 193
Localisation : France, Allier, Petit patelin...
Projet Actuel : Empiler des cubes...
et de la paille aussi...(un poile plus stressant)

Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] EmptySam 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!!
Revenir en haut Aller en bas
Contenu sponsorisé





Récupérer les coordonnées d'une collision [Résolu] Empty
MessageSujet: Re: Récupérer les coordonnées d'une collision [Résolu]   Récupérer les coordonnées d'une collision [Résolu] Empty

Revenir en haut Aller en bas
 
Récupérer les coordonnées d'une collision [Résolu]
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Sauvegarder des coordonnées d'objet
» [Résolu] coordonnées x,y relatives à l'angle
» Afficher sprite-coordonnées relatives à la fenêtre [RESOLU]
» Récupérer argument [Résolu]
» [Résolu] Collision d'un draw_rectangle.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: