AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 faire un grappin

Aller en bas 
+5
onilink_
Johny Wessmuller
arthuro
Oculus
cypobos
9 participants
AuteurMessage
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: faire un grappin   faire un grappin EmptyMar 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
Revenir en haut Aller en bas
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMar 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.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMar 8 Mai 2012 - 21:07

Je te renvoie à ceci qui pourrait t'aider.
https://cbna.forumactif.com/t9641-gml-laser_length

ce 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
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMar 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
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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).
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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)
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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.
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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 sweat
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 9 Mai 2012 - 12:20

est aussi comment je fait pour orienter le sprite du grappin que je doit draw sinon il disparait
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 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
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


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.

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 9 Mai 2012 - 21:15

Object_name.variable
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyMer 9 Mai 2012 - 23:20

merci sa me bloque pour certains truc est je devait souvent definir la meme variable pour 5 objet
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptySam 19 Mai 2012 - 14:28

j'ai utiliser un move toward est quand je touche un plafond mon perso bouge dans tous les sens
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyDim 27 Mai 2012 - 14:34

un peut d'aide svp
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyDim 27 Mai 2012 - 18:26

dsl je ne comprends pas ta demande.
Revenir en haut Aller en bas
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyLun 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
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


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
...

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyLun 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 ?
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyJeu 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.
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyJeu 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]
>
Revenir en haut Aller en bas
http://www.tdms.fr
cypobos
Utilisateur moyen
cypobos


Messages : 61

faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin EmptyVen 1 Juin 2012 - 20:45

voila mon code
Revenir en haut Aller en bas
Contenu sponsorisé





faire un grappin Empty
MessageSujet: Re: faire un grappin   faire un grappin Empty

Revenir en haut Aller en bas
 
faire un grappin
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Game maker7 :Grappin
» faire ou ne pas faire
» faire une animation =D
» Comment faire???^^
» que faire

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: