| faire un grappin | |
|
+5onilink_ Johny Wessmuller arthuro Oculus cypobos 9 participants |
Auteur | Message |
---|
cypobos Utilisateur moyen
Messages : 61
| Sujet: faire un grappin Mar 8 Mai 2012 - 18:06 | |
| bonjour, j'aimerait ajouter un grappin composer d'une chaîne et d'une pointe dans mon jeu quand on l'utilise il s’étend jusqu’à une distance max (pas de graviter, si il touche un bloc il nous tire vers sa pointe (le point de contacte quoi) et si il touche un ennemi il le tire vers nous (un peut comme dans tee world en sommes) est il disparaît quand on relâche la touche |
|
| |
Oculus Utilisateur confirmé: Rang *****
Messages : 1688
| Sujet: Re: faire un grappin Mar 8 Mai 2012 - 20:27 | |
| Bah regarde du coté d'un collision line, une fois que tu trouves le point de collision tu regardes l'angle entre le perso et le point de collision. Après il suffit d'aller vers cette direction tant qu'il n'y a pas de collisions. |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: faire un grappin Mar 8 Mai 2012 - 21:07 | |
| Je te renvoie à ceci qui pourrait t'aider. https://cbna.forumactif.com/t9641-gml-laser_lengthce script te renvoie la distance en partant de ton point et de ton angle , de la plus proche collision. Tu n'aura plus qu'à la comparer à la longueur courante de ton grappin |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Mar 8 Mai 2012 - 22:44 | |
| en fait ce qui me gene le plus c'est de faire aparaitre la chaine entre la pointe et mon perso |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 10:44 | |
| En gros tu veux que l'on clique vers un point pour faire un grappin qui va faire ce point ?
Ben dans ce cas, tu connais déjà la direction : si (x',y') sont les coordonnées du point sur lequel tu as cliqué et si tu connais les coordonnées (x+x",y+y") de l'endroit où est créé le grappin par rapport au perso avec (x,y) les coordonnées du perso, tu fais point_direction(x+x",y+y",x',y') pour avoir la direction.
Le point de contact entre le grappin et la surface n'est pas important à mon avis, tu n'as qu'à prendre les coordonnées du grappin, et donc pour avoir la distance, un simple point_distance(x+x",y+y",grappin.x,grappin.y) suffira.
Pour dessiner la chaîne, un draw_line(x+x",y+y",grappin.x,grappin.y). Attention, l'objet dans lequel tu mets un draw devient invisible (donc met le dans le grappin style draw_line(perso.x+x",perso.y+y",x,y) et fais le grappin se redessiner avec un draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale, image_angle,image_blend,image_alpha) par exemple). |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 11:47 | |
| j'ai 2 problème j'utilise "draw line" dans step et "move toward (x:grapin.x y:grapin.y object: player)" dans collision bloc 1) la ligne n’apparait pas 2) le joueur est tiré vers la pointe pendant 1s puis retombe (le grapin reste) |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 11:55 | |
| Les draw_machin doivent être mis dans le draw event, sinon ils sont effacés avant le rafraichissement de l'écran. |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 12:12 | |
| Au fait, finalement, fais plutôt point_direction(x+x",y+y",grappin.x,grappin.y) si le grappin est parti pour la direction |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 12:16 | |
| pour résoudre un petit problème avec mon grappin j'ai besoin de savoirs comment on fait pour dire de prendre une variable dans un autre objet exemple: A: notre variable obj1: un objet obj2: un autre objet comment faire pour que si je veut que obj1 aille dans une direction A sachant que la variable A est définie dans obj2 |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 12:20 | |
| est aussi comment je fait pour orienter le sprite du grappin que je doit draw sinon il disparait |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 13:16 | |
| - cypobos a écrit:
- j'ai 2 problème j'utilise "draw line" dans step et "move toward (x:grapin.x y:grapin.y object: player)" dans collision bloc
1) la ligne n’apparait pas 2) le joueur est tiré vers la pointe pendant 1s puis retombe (le grapin reste) Dans le collision bloc ?? Pourquoi dans le collision bloc ?? Ne cherche plus le problème il est là. Si ton perso est en collision avec un bloc il va être tiré par le grappin, comme en étant tiré, il y a un moment où il ne sera plus en collision avec un bloc, il ne sera plus tiré. (mais tu voulais faire quoi avec le collision bloc ??) Sinon pour te répondre, tu fais plutôt un if (//le grappin est accroché) {//Va vers le grappin dans la limite du possible} Par exemple : dans le grappin, dans la collision avec un objet solide, tu mets une variable accroche à true et tu stoppe le grappin. (donc n'oublie pas de créer cette variable dans le create à false) Ensuite dans le perso, je vois un truc du style (avec une vitesse_traction pas trop élevée par rapport aux dimension du sprite) : - Code:
-
if grappin.accroche { a=grappin.x-x-x"; b=grappin.y-y-y"; k=vitesse_traction/sqrt(point_distance(0,0,a,b)); if place_free(x+a*k,y+b*k) { hspeed=a*k; vspeed=b*k; } else { move_contact_solid(point_direction(0,0,a,b)); hspeed=0; vspeed=0; } } Y a ptetr des erreurs, je n'ai pas testé, mais c'est de la géométrie, tu devrais pouvoir les corriger. Pour utiliser une variable qui est dans un autre objet, tu l'as souvent fait (enfin tu m'as dit que tu comprenais mes codes et tu as utilisé perso.x et perso.y une fois au moins dans le code de PsycKho), il faut mettre le nom de l'objet suivi d'un point, suivi de la variable, exemple : perso.compteurExplosion pour accéder à la variable compteurExplosion du perso et bombe.compteurExplosion pour accéder à celle de l'objet bombe. Pour l'orienter sinon il disparaît ? Pas tout compris, mais tout est dans cette fonction que je t'ai donné : draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale, image_angle,image_blend,image_alpha). Renseigne toi sur les paramètres.
Dernière édition par Johny Wessmuller le Sam 19 Mai 2012 - 21:31, édité 1 fois |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 14:39 | |
| c'est bon ce problème la est résolue mais je cherche a savoir comment tester ou modifier une variable qui se trouve dans un objet avec des action qui se trouve dans autre objet |
|
| |
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: faire un grappin Mer 9 Mai 2012 - 21:15 | |
| |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Mer 9 Mai 2012 - 23:20 | |
| merci sa me bloque pour certains truc est je devait souvent definir la meme variable pour 5 objet |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Sam 19 Mai 2012 - 14:28 | |
| j'ai utiliser un move toward est quand je touche un plafond mon perso bouge dans tous les sens |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Dim 27 Mai 2012 - 14:34 | |
| |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: faire un grappin Dim 27 Mai 2012 - 18:26 | |
| dsl je ne comprends pas ta demande.
|
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Lun 28 Mai 2012 - 17:37 | |
| pour que le grapin déplace mon perso j'ai utiliser un "move toward (grapin.x,grapin.y) speed 10" et quand mon perso arrive a l'endroit du grapin il se deplace dans tous les sens |
|
| |
chopsuey Utilisateur confirmé: Rang ***
Messages : 523 Localisation : saint etienne Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...
| Sujet: Re: faire un grappin Lun 28 Mai 2012 - 18:08 | |
| Sans ton code ou sans plus d'explications concernant les interactions entre le perso et les autres objets, comment veux tu que l'on sache ce qui ne va pas ? |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: faire un grappin Jeu 31 Mai 2012 - 14:54 | |
| C'est sûrement dû au move toward. La solution est donc certainement dans le code que je t'ai donné puisque je ne l'utilise pas. |
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: faire un grappin Jeu 31 Mai 2012 - 19:28 | |
| sinon (D&D):
si [point_distance(x,y,grapin.x,grapin.y) > 16] < move toward [grapin] >else< instance destroy [grapin] > |
|
| |
cypobos Utilisateur moyen
Messages : 61
| Sujet: Re: faire un grappin Ven 1 Juin 2012 - 20:45 | |
| |
|
| |
Contenu sponsorisé
| Sujet: Re: faire un grappin | |
| |
|
| |
| faire un grappin | |
|