Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: [Résolu] Collision d'un draw_rectangle. Dim 9 Oct 2011 - 13:50 | |
| Bonjour, Voici une partie de mon code qui désine un rectangle de la taille d'un objet. - Citation :
- if(mouse_check_button_pressed(mb_left)){
x1=mouse_x; y1=mouse_y; create = true; }
if(mouse_check_button_released(mb_left) and x1!=false){ // [...] creation de l'objet create = false; }
if( create==true){
if(point_distance(x1,y1,mouse_x,y1)*point_distance(x1,y1,x1,mouse_y) > global.mana) draw_set_color(c_red); else draw_set_color(c_white); draw_rectangle(x1,y1,mouse_x,mouse_y,true); } J'aimerais savoir s'il existe une fonction qui nous renverrait si le rectangle et l’intérieur du rectangle est en collision avec un objet solide? Pour le moment on le sais seulement après avoir créé l'objet et en fessant le test avec un "place_free();" |
|
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. Dim 9 Oct 2011 - 17:00 | |
| aabb collision - Code:
-
BboxCollision( BBox box1, BBox box2 ) { if( box1.Min.x > box2.Max.x ) return false; if( box1.Max.x < box2.Min.x ) return false; if( box1.Max.z > box2.Min.z ) return false; if( box1.Min.z < box2.Max.z ) return false; return true; } |
|
Mass *Excellent utilisateur*
Messages : 3351 Localisation : Dans une canonnière wookie. Projet Actuel : Monter des trucs et des machins
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. Lun 10 Oct 2011 - 0:29 | |
| |
|
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. Mar 11 Oct 2011 - 14:08 | |
| Bonjour,
Merci onilink_ et Mass pour vos reponses!
Onilink_ as tu une raison particulière de me montrer un script au lieu d'une fonction interne qui reste plus rapide au niveau perf? |
|
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. Mar 11 Oct 2011 - 14:15 | |
| Ben tu fait une collision avec un draw non ? Donc ton objet a pas de masque j'imagine.
|
|
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. Mar 11 Oct 2011 - 14:32 | |
| Non il n'as pas de masque vus qu'il ne sert qu'a dessiner un draw_rectangle et à créer un objet à partir de ce rectangle. - Code:
-
if(mouse_check_button_pressed(mb_left)){ x1=mouse_x; y1=mouse_y; create = true; }
if( create==true){ if(collision_rectangle(x1,y1,mouse_x,mouse_y,obj_sol,1,1) ) draw_set_color(c_red); else draw_set_color(c_white); draw_rectangle(x1,y1,mouse_x,mouse_y,true); } Ce code fonctionne parfaitement. Mon rectangle devient rouge s'il est en contact avec n'importe qu'elle objet de parenté avec obj_sol. Cependant les deux derniers arguments de "collision_rectangle" je ne sais pas ce que c'est. - Citation :
- collision_rectangle(x1,y1,x2,y2,obj,prec,notme) Cette fonction teste s'il existe une collision entre le rectangle (plein) de coins opposés indiqués et les entités de l'objet obj. Par exemple, vous pouvez utiliser cette fonction pour tester si une zone est sans obstacles.
Note: même si le outline du draw_rectangle est en true ça fonctionne également. |
|
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. Mar 11 Oct 2011 - 18:50 | |
| Logique, puisque tes fonctions d'affichage et de détection sont totalement indépendantes.
Sinon : - prec : utiliser oui ou non le pixel-perfect des objets testés (sinon on utilise leur bounding box) - notme : empêcher ou non l'objet qui lance la fonction de s'autodétecter. _________________ Home is not a place, it's a feeling.
|
|
Contenu sponsorisé
| Sujet: Re: [Résolu] Collision d'un draw_rectangle. | |
| |
|