| [Resolu]Problème avec collision _ line avec mur entre 2 obj | |
|
+5Rom's jo Pepsy Innoson loucheman 9 participants |
Auteur | Message |
---|
loucheman Très bonne participation
Messages : 115
| Sujet: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 15:49 | |
| Bonjour à tous ! J'ai un problème avec la fonction collision_line. Je l'utilise pour voir si 2 objets se voient, mais le problème est que quand je me déplace avec mon avion et que j'arrive à la hauteur de mon ennemie mon avion ne détecte pas le mur entre les 2 avions pendant un court laps de temps... J'ai mis un exemple... aviontestvue2objets.gm6 - 0.01MBMerci à l'avance... Loucheman
Dernière édition par le Lun 16 Avr 2007 - 4:18, édité 1 fois |
|
| |
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 16:51 | |
| je vais voir sa _________________
tchou tchou motherfucker |
|
| |
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 16:58 | |
| a mais c'est simple voici le lien du gm6 réparer : http://www.zshare.net/download/aviontestvue2objetsresolu-gm6.htmlsi le problème est pas résole reformule moi ta questions maiis normalement c'est sa. PS: Qui a soif, rêve qu'il boit. ne rêve pas que tu noit, et essaye de résoudre les erreurs par toi même sinon tu apprend rien, dans se cas tu envérra toujour tes erreur a résoudre par les autre (comme tu le fait ici ou sur GameMakerZone) C'est pas méchant, mais essayde chercher par toi-même, télécharge l'aide de gamemaker en francais si tu l'a pas. _________________
tchou tchou motherfucker |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 18:06 | |
| Salut Innoson, Rien n'est résolu ! Il semble que la ligne de collision passe entre les 2 blocs sans leurs toucher... J'ai essayé la fonction collision_line avec precise = true ou precise=false, mais cela ne change rien... j'ai changé la sprite du bloc pour y mettre un contour et j'ai fait un print screen de l'erreur : Tu vois, les 2 avions se voient, mais il ne devrait pas : Il y a un mur entre les 2 avions !!! - Innoson a écrit:
PS: Qui a soif, rêve qu'il boit. ne rêve pas que tu noit, et essaye de résoudre les erreurs par toi même sinon tu apprend rien, dans se cas tu envérra toujour tes erreur a résoudre par les autre (comme tu le fait ici ou sur GameMakerZone) C'est pas méchant, mais essayde chercher par toi-même, télécharge l'aide de gamemaker en francais si tu l'a pas. Ne t'inquiète pas, je cherche par moi-même, dans l'aide anglaise, dans l'aide française et sur le forum avant de demander... Merci à l'avance ! Loucheman |
|
| |
Pepsy Utilisateur confirmé: Rang ***
Messages : 608 Localisation : Devant mon ordinateur à écrire des lignes de codes Projet Actuel : RPG
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 18:37 | |
| |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 18:51 | |
| tiens innoson , je croyais que tu n'aimais pas ce fofo _________________ http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer. |
|
| |
Rom's Utilisateur confirmé: Rang *****
Messages : 1525 Localisation : non c'est pas moi!
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 19:04 | |
| Bah je crois qu'il a dit qu'il l'aimait ce fofo. :oui: _________________ Comment vas-tu Invité ? - Rom's a écrit:
- Comment vas tu edi9999?
- edi9999 a écrit:
- Tres bien merci roms,et toi ?
Ben je vais très bien merci à toi ^^ |
|
| |
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 21:06 | |
| - jo a écrit:
- tiens innoson , je croyais que tu n'aimais pas ce fofo
comme le dit mon amis de date romain, j'ai dis une fois en public ici que j'aimais le cbna, quand je suis arriver ici, et j'ai dit seulement que il y avais des gens irréspéctueuc sur se forum, pas que jje l'imais pas, >> loucheman je vais trouver une solution pas deproblème, car la fonction collision_line mas aussi souvent poser des problème. aux pire des cas, DLL je vais voir sa se soir _________________
tchou tchou motherfucker |
|
| |
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 21:58 | |
| _________________
tchou tchou motherfucker |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 22:08 | |
| - Citation :
- Ne t'inquiète pas, je cherche par moi-même, dans l'aide anglaise, dans l'aide française et sur le forum avant de demander...
Excélent, tu as fais un bon pas pour t'améliorer alors _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Dim 15 Avr 2007 - 22:40 | |
| ok _________________ http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer. |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Lun 16 Avr 2007 - 4:17 | |
| Merci Innoson, Ton script m'a été très utile... Cependant, il contenait une petite erreur que j'ai corrigée... le test de collision fesait une ligne droite vers la coordonnée désirée mais continuait par la suite son chemin si l'objet de la collision n'était pas rencontré... Dans mon cas, tout étais ok quand un mur était entre mes 2 avions : elles ne se voyaient pas... mais si mes 2 avions étaient une à côté de l'autre et qu'un mur se trouvait derrière l'avion ennemie, le mur était détecté et mes avions ne se voyaient plus même s'il n'y avait pas d'obstacles entre eux... Pour corriger le problème, au lieu d'utiliser maxDist = sqrt(sqr(view_wview[0])+sqr(view_hview[0])) (longueur de la diagonale de la view 0), j'ai ajouté un nouvel argument (argument4) à la fonction qui sert à définir le déplacement maximal pour la collision. Normalement, comme argument4, j'utiliserai point_distance(x,y,SonAvion.x,SonAvion.Y)... Pour tous ceux qui voudraient bénéficier du script corrigé, le voici : (Un gros merci bien spécial à Innoson !) Script: - Code:
-
//Script collision_line_direction
// Argument0 = x // Argument1 = y // Argument2 = objet a collisoner // Argument3 = direction de la line a collision // Argument4 = Distance Maximum à parcourir i=0// i est la distance qui s'épare l'avion d'une collision for(i=0;i<argument4;i+=1) { xPoint=argument0+lengthdir_x(i,argument3) yPoint=argument1+lengthdir_y(i,argument3) Collision=collision_point(xPoint,yPoint,argument2,false,true) if Collision{return Collision break} // si il y a une collision on arrete de fair avancer la line et on retourn au collisions } /* // si tu veut que si il y est quelque chose qui touche et que l'on fasse une action c'est comme sa : else{ // si il y a une collision if Collision.object_index==objEnemy{objCollide.myHealth-=1} }*/
Exemple d'appel du script: - Code:
-
if collision_line_direction(x,y,SBlock,point_direction(x,y,SonAvion.x,SonAvion.y),point_distance(x,y,SonAvion.x,SonAvion.y))
Voici le lien de l'exemple corrigé... nouveau collision_line2.gm6 - 0.01MBEncore Merci ! Loucheman |
|
| |
Invité Invité
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Lun 14 Mai 2007 - 13:58 | |
| tient je crois que ce truc va m'être utile |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Mar 15 Mai 2007 - 14:18 | |
| ouai c util pour une IA de platforme _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Mar 15 Mai 2007 - 23:44 | |
| Je travaille sur autre chose : une fonction qui détecte s'il y a collision et si la collision s'est produite du côté gauche,droite,haut ou bas...
je vous revient là dessus quand cela sera prêt...
Loucheman |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Mer 16 Mai 2007 - 14:24 | |
| je ne sais plus ou, mais j'avais vu un exemple qui donnait la position de la collision au pixel pret..... _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
notiz85 Utilisateur confirmé: Rang *****
Messages : 2004 Localisation : Vendée Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Mer 16 Mai 2007 - 17:28 | |
| - loucheman a écrit:
- Je travaille sur autre chose : une fonction qui détecte s'il y a collision et si la collision s'est produite du côté gauche,droite,haut ou bas...
je vous revient là dessus quand cela sera prêt...
Loucheman Au pire tu demande à Adamo car il a fait un genre SimCity et on peut pour le moment créer des routes et il vérifie justement s'il y a collision à droite, gauche, en haut, en bas... _________________ |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj Sam 19 Mai 2007 - 16:57 | |
| Tel que promis! Script de collision avec direction (gauche,droite,haut bas) - Code:
-
//Script : CheckCollision //Par Loucheman, Crédit apprécié si vous utilisez ce script !
//Verifie s'il y a collision avec un objet dans une direction précise //Retourne l'ID de l'instance entrant en collision, noone si aucune collision
//argument0 : Position X à vérifier : normalement X de l'objet mais peut être différent si pour vérifier un futur mouvement par exemple //argument1 : Position Y à vérifier //argument2 : direction à vérifier // 1 = droite // 2 = haut // 3 = gauche // 4 = bas //argument3 : objet à vérifier si collision //argument4 : precice // true = vérification précise de la collision // false = vérification non précise de la collision
var ObjectCollision,X,Y;
X = argument0 Y = argument1
switch (argument2) { case 1://droite { x1 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index) + 1 y1 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index) x2 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index) + 1 y2 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index) return collision_line(x1,y1,x2,y2,argument3,argument4,true) break } case 2://haut { x1 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index) y1 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index) - 1 x2 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index) y2 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index) - 1 return collision_line(x1,y1,x2,y2,argument3,argument4,true) break } case 3://gauche { x1 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index) - 1 y1 = Y - sprite_yoffset + sprite_get_bbox_top(sprite_index) x2 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index) - 1 y2 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index) return collision_line(x1,y1,x2,y2,argument3,argument4,true) break } case 4://bas { x1 = X - sprite_xoffset + sprite_get_bbox_left(sprite_index) y1 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index) + 1 x2 = X - sprite_xoffset + sprite_get_bbox_right(sprite_index) y2 = Y - sprite_yoffset + sprite_get_bbox_bottom(sprite_index) + 1 return collision_line(x1,y1,x2,y2,argument3,argument4,true) break } default : { show_message("Mauvaise utilisation de la fonction CheckCollision!!!") } }
Exemple d'utilisation de la fonction : - Code:
-
if keyboard_check_direct(vk_up) and CheckCollision(x,y+1,4,VPlancher,false) then //Si la touche flèche haut est pesée et que le perso est sur un mur JUMP! { vspeed=-5 } "x" veut dire x de mon objet "y+1" veut dire 1 pixel en dessous de mon objet "4" veut dire détection en bas du sprite de mon objet ***en donnant y+1 comme paramètre j'effectue un test de collision 1 pixel en dessous de bbox_bottom... "VPlancher" est l'objet avec lequel je veut tester s'il y a une collision "false" veut dire détection non précise de la collision avec VPlancher ***Donc en utilisant la bounding box de VPlancher... J'espère que cela vous sera utile ! Loucheman |
|
| |
Contenu sponsorisé
| Sujet: Re: [Resolu]Problème avec collision _ line avec mur entre 2 obj | |
| |
|
| |
| [Resolu]Problème avec collision _ line avec mur entre 2 obj | |
|