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_line() return the POS of the collision. Mer 14 Sep 2011 - 21:54 | |
| Bonsoir je reviens encore avec une nouvelle question (oui je sais que j'en pose beaucoup, mais bon faut un début à tout). Je creer un bloc par un click gauche sur l'écran (le bloc est un sort lancé par mon personnage). Je verifie donc si mon personnage à une ligne de vue avec le point visé avec : - Code:
-
collision_line(obj_hero.x,obj_hero.y,x,y,all.solid,true,true)) Ce qui marche parfaitement. Au cas ou je ne dispose pas de ligne de vue j'aimerais afficher une animation à l’endroit où la première collision gênante bloque ma LDV. En sachant que "collision_line()" renvois un booléen et que je dois exécuter l'action en un seul step existe t'il une fonction GML, ou dois-je faire une boucle de vérification par pixel en direction de ma position final?
Dernière édition par Caly le Jeu 15 Sep 2011 - 10:43, édité 1 fois |
|
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RÉSOLU] collision_line() return the POS of the collision. Mer 14 Sep 2011 - 21:57 | |
| |
|
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: [RÉSOLU] collision_line() return the POS of the collision. Mer 14 Sep 2011 - 23:04 | |
| wouhouuu, de la pub pour mes fonctions |
|
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_line() return the POS of the collision. Jeu 15 Sep 2011 - 10:42 | |
| onilink_ merci pour le lien de la fonction made home. Donc il fallait bien procéder avec une boucle, dommage qu'il n'y ai pas une fonction tout prête pour calculer la distance d'impact d'un objet avec un autre, je trouve ça bête. Bref voici le résultat si ça peut aider quelqu'un (reprise de la fonction de M@d_Doc avec quelques modifications). - Code:
-
//Déclaration des variables var x_depart, y_depart, dist_impact, precision, long_max, dir; x_depart = obj_hero.x; //peut se modifier pour cibler les yeux du hero. y_depart = obj_hero.y; //# dist_impact=0; precision=2; // minimum de 2. long_max= floor(point_distance(x_depart, y_depart, mouse_x, mouse_y)); dir= point_direction(x_depart, y_depart, mouse_x, mouse_y); //On calcule la distance d'impact au px pres. while (precision>1 or dist_impact>long_max) { while !collision_line(x_depart, y_depart,floor(x_depart+lengthdir_x(dist_impact,dir)),floor(y_depart+lengthdir_y(dist_impact,dir)),all.solid,true,true) && dist_impact<long_max dist_impact += precision; dist_impact -= precision; precision /= 2; } //On creer une instance a l'endroit de l'impact. instance_create(floor(x_depart+lengthdir_x(dist_impact,dir)),floor(y_depart+lengthdir_y(dist_impact,dir)),obj_balle);
M@d_Doc suis-je obligé de te rajouter dans mes crédits ? :° En tout cas merci pour l'aide! |
|
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: [RÉSOLU] collision_line() return the POS of the collision. Jeu 15 Sep 2011 - 16:28 | |
| non non, t'es pas obligé de me mettre dans les crédits, c'est un tout petit script, pas le travail d'un mois ^^
|
|
Contenu sponsorisé
| Sujet: Re: [RÉSOLU] collision_line() return the POS of the collision. | |
| |
|