| quelques questions après lecture de la bible de GM | |
|
|
|
Auteur | Message |
---|
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 18:16 | |
| oO je savais pas ca moi... C'est spécifique à GMS ou faut le faire aussi avec GM8 ? _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 18:19 | |
| Ben ça existe depuis que le GML existe |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 18:29 | |
| Ah bah je viens d'apprendre un truc, je pensais qu'il se désallocalisait tout seul à la destruction de l'objet moi... Merci ^^ _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 18:36 | |
| Merci beaucoup pour vos réponses, elles m'indiquent bien que je ne raisonnais pas de la bonne façon ! Bon, par contre j'essais de faire les choses bien et ça ne marche pas J'ai plusieurs gardes, avec devant eux une zone de détection. J'ai donc placé dans un "create" du garde un : - Code:
-
var inst1; inst1 = instance_create(x, y, zone_de_detection); Du coup, tous mes gardes à la création ont la zone de détection attaché, et par conséquent, j'ai juste à positionner mes gardes dans ma room. Par contre, mes gardes ne sont pas tous dans le bons sens au départ. Je fais donc un "creation code" sur les instances de la room pour les remettre dans le sens que je veux au départ. Je fais donc un : - Code:
-
image_angle = angle; Seul soucis, si les gardes sont dans le bon sens, les zones elles non... Alors dans le "stepp" des zones, je met: - Code:
-
image_angle = obj_garde.image_angle; Sauf que non... ça marche pas et je ne sais pas du tout pourquoi... Lorsque je met ce code, toutes les zones pointent vers le bas, quelque soit l'orientation du garde. En fait, j'ai l'impression que l'angle des zones s'initialise à partir du code de création du premier garde dans la room, et est appliqué à la volé à tous les autres quelque soit leur info de création. Alors je pense que c'est moi qui m'y prend mal au niveau raisonnement, mais je pensais pourtant que c'était un ordre de création logique... Help... |
|
| |
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: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 18:45 | |
| Quand tu dis image_angle = obj_garde.image_angle;
Le programme va prendre image_angle de la 1er instance créer donc toutes les zones vont avoir le même image_angle. il faut que tu te serve de l'id de l'instance. Dans create garde:
id_detection=instance_create(x,y,detection); id_detection.image_angle=image_angle; _________________ - Spoiler:
|
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 19:10 | |
| Ok, j'ai compris le raisonnement, et en effet c'est très logique. Ceci-dit, je n'ai pas réussit à le mettre en application comme tu me l'as indiqué. Dans le create de ma zone, j'ai mit: - Code:
-
image_angle = instance_nearest(x, y, obj_garde_fixe).image_angle; ça permet de récupérer l'angle de l'entité la plus proche, et comme c'est nécessairement le garde, ça marche bien. Par contre je trouve que c'est vraiment du bricolage à la vas vite quoi... Il n'y aurait pas moyen plutôt de faire directement référence à l'instance qui appelle l'instance en cours. un truc du genre: - Code:
-
image_angle = instance_appelante.image_angle; Ce serait carrément plus propre... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 19:11 | |
| Bah c'est ce que fais l'exemple de Chopsuey : instance_create() te retourne l'id de l'objet créé, et grâce à ca tu peux ensuite accéder à tous ses attributs, dont le image_angle _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 19:18 | |
| Oui mais je n'arrive pas à mettre cet exemple en application... :/ En fait si dans le "stepp" de ma torche, je me la ligne: - Code:
-
image_angle = instance_id[inst1].image_angle; Je me retrouve avec une grosse erreur dans les dents: - Citation :
- ___________________________________________
############################################################################################ FATAL ERROR in action number 1 of Step Event0 for object obj_rayon_torche_fixe:
Push :: Execution Error - Variable Get -1.inst1(100120, -1) at gml_Object_obj_rayon_torche_fixe_StepNormalEvent_1 (line 2) - image_angle = instance_id[inst1].image_angle; ############################################################################################ Je comprends bien le principe, mais je n'arrive pas, même à l'aide de la doc, à trouver comment faire ça. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 19:21 | |
| image_angle=inst1.image_angle _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 19:34 | |
| Oui j'ai tenté aussi, mais je me ramasse: - Citation :
- ___________________________________________
############################################################################################ FATAL ERROR in action number 1 of Step Event0 for object obj_rayon_torche_fixe:
Push :: Execution Error - Variable Get -1.inst1(100120, -1) at gml_Object_obj_rayon_torche_fixe_StepNormalEvent_1 (line 2) - image_angle = inst1.image_angle; ############################################################################################
J'avoue ne plus trop savoir comment m'y prendre... :/ Désolé d'avoir les deux pieds dans le même sabot :p |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 20:19 | |
| Le mieux dans ton cas est de lier la zone de vision au garde. Donc il faut que ta zone de vision ai un "pointeur" du garde en attribut. vision = instance_create(x, y, Vision) vision.garde = id De cette façon dans vision tu pourras mettre (dans step) x = garde.x y = garde.y image_angle = garde.image_angle - Térence68 a écrit:
- Ah bah je viens d'apprendre un truc, je pensais qu'il se désallocalisait tout seul à la destruction de l'objet moi...
Merci ^^ Ben oui, le instance_destroy() désalloue :b Tout comme le changement de room si instance non persistante. |
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 21:19 | |
| Merci beaucoup pour vos réponses, vraiment. J'ai un peu honte de le dire, mais ça ne marche toujours pas... En fait, la ligne: - Code:
-
vision.garde = id ne passe carrément pas. Il me dit qu'il attends un nom de variable. J'avoue comprendre le principe de tout ça, mais je multiplie les erreur quoi que je fasse, et j'ai du mal à comprends pourquoi il est si compliqué de faire appel à une instance n+1... |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 21:20 | |
| vision et garde, juste comme ça, c'est pas le nom de tes objects hein?
|
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 21:21 | |
| non, j'ai remplacé "vision" et "garde" par le nom des objets adéquat. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: quelques questions après lecture de la bible de GM Jeu 28 Nov 2013 - 22:07 | |
| Ah ben justement c'est le soucis. En fait c'est juste sensé être des variables. Vois vision et garde comme des pointeurs (en fait c'est des entiers qui ont juste des identifiants d'instances d'objets, pas d'objets!). |
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Ven 29 Nov 2013 - 10:31 | |
| Ok, merci onilink_ ! En fait, toute cette conversation m'a fait comprendre que j'étais en train de tout faire à l'envers, et c'est pour ça que je me tapais des messages d'erreur dans tous les sens. Je m'étais mit en tête de placer graphiquement mes instances sur ma room, et après je galérais comme un débile à tenter de retrouver les ID, ce que je n'arrivai bien sûr jamais à faire... Je crois que j'ai passé un bon cap là pour le coup! Maintenant je place juste mes objets immobiles sur la scène, et point barre. Pour le reste, je créer un objet spécial pour toutes mes créations d'instance et mes contrôler, je le place à côté de la scène et je déclare tout là dedans. Je n'ai plus aucun personnage physique au final sur ma scène. Juste des objets bien rangés dans ma bibliothèque, et auquel je fais appel en GML lors de la création de la room pour les placer où je veux, et pour déclarer leur comportement. En fait pour vous ça doit paraître méga logique, mais ça ne l'était pas pour moi jusque là^^ Comme je le disais, avoir une interface graphique c'est bien pour certaines choses, mais personnellement ça a tendance à gravement m'embrouiller. J'étais en train de mélanger objets et instances, une connerie que je n'aurai jamais fait en code pure. Alors que c'est pourtant le truc le plus évident du monde... Quoi qu'il en soit, j'ai enfin eu le déclic, et j'ai tout repris dans le bon ordre, et là miracle, tout marche parfaitement. Bien entendu, tout ce que vous me disiez depuis plusieurs postes est parfaitement exact (même si je n'en ai évidemment jamais douté), et trouve sa place naturelle dans tout ça. Finalement plus ça va, et plus je fais absolument tout en GML. C'est tellement plus simple et naturel au bout du compte :/ Par contre, est-ce que quelqu'un aurait de bons tutos sur l'utilisation des timeline en GML? Parce que la doc à ce niveau est plus que radine: http://gamemaker.info/fr/manual/403_07_timingJ'ai pas pour habitude de critiquer l'aide gratuite, mais là le chapitre est carrément vide quoi... J'ai tenté de chercher un peu partout, y compris dans l'aide du soft, j'ai quelques fonction et variables, mais je ne sais pas du tout comment m'en servir... |
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 8 Déc 2013 - 16:23 | |
| Hello à tous! Nouveau petit problème de mon côté... Je m'explique rapidement et clairement (je vais tenter!): mon personnage lance un projectile, et lorsque celui-ci explose en touchant un mur, le perso se téléporte automatiquement à la position de l'explosion. Mon système marche bien, sauf qu'il y a un petit soucis bien évidemment. La boîte de collision de mon projectile est plus petite que celle de mon personnage. Si bien que lorsque mon perso prend les coordonnées de l'impact, il se retrouve complètement glitché dans le mur, et la téléportation foire. Jusque là, je n'ai vraiment trouvé aucune solution réellement fiable à 100%. J'ai tenté de réaligné le personnage sur une grille de 64x64, sauf que ça marche une fois sur deux car la plupart du temps, il prendre la ligne dans le mur. Et si j'augmente la taille de la grille, je n'ai plus aucune précision sur la téléportation. En fait, le plus simple serait de chercher la zone libre la plus proche de l'impact. Mais je n'ai trouvé aucune fonction permettant de faire ça... Est-ce que par hasard vous auriez une solution miracle à ce soucis? |
|
| |
GrandeLangue Bonne participation
Messages : 77 Localisation : Lille Projet Actuel : Faire des maths
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 8 Déc 2013 - 17:26 | |
| Le plus simple serait de modifier le masque de collision pour qu'il fasse la même taille que celui du personnage (tout en laissant ton sprite identique). Mais si tu n'aimes pas cette solution (puisque le projectile ne touchera pas réellement le mur quand il explosera), tu peux faire un move_outside_solid(dir, maxdist) pour te sortir du mur (la direction est celle de ton mur au centre de l'explosion, donc fais en sorte de calculer la direction avant de détruire ton objet explosion ). |
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 8 Déc 2013 - 20:29 | |
| En fait, ce n'est pas tellement que je ne veux pas augmenter la boîte de collision de mon projectile, c'est surtout que je ne peux pas. En réalité, ce projectile va effectuer plusieurs rebonds, un peu à la manière d'une boule billard, avant d'atteindre sa cible. Le joueur doit viser précisément entre des objets et calculer des trajectoires. Si la boîte de collision est plus grande que la balle, ça fausse tout.
J'ai un peu tenté avec le move_outside_solid, mais ça ne donnait rien de très concluant. A mon avis, je dois en effet calculer la provenance de la balle. Mais comme celle-ci résulte de moultes rebonds, c'est un peu la galère. D'où mon désarroi face ce problème :p |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 8 Déc 2013 - 23:32 | |
| Nop, c'est pas important, c'est seulement la dernière direction qui compte. Tu met en argument dir la valeur que te retourne point_direction avec les coordonnées du mur le plus proche du héros et de ce dernier... (par contre je sais pas si c'est bien clair x) ) _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
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: quelques questions après lecture de la bible de GM Lun 9 Déc 2013 - 12:59 | |
| dans l'évènement de collision du projectile avec le mur: - Code:
-
angle=point_direction(x,y,obj_joueur.x,obj_player.y) obj_joueur.x=x obj_joueur.y=y with obj_joueur { while not place_free(x,y) { x+= lengthdir_x(1,obj_projectile.angle) y+= lengthdir_y(1,obj_projectile.angle) }} instance_destroy() Tu récupères l'angle (la direction) dans la variable angle entre le projectile et le joueur. Puis tu places je joueur à la position du projectile. Tu lances une boucle dans l'objet joueur pour le déplacer pixels par pixels en direction de l'angle pré calculé jusqu'à qu'il ne soit plus en collision avec le mur, et tu détruit l'objet projectile. _________________ - Spoiler:
|
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 15 Déc 2013 - 14:25 | |
| Merci beaucoup pour vos réponses chopsuey, Térence68, et GrandeLangue. Grâce à vous, j'avance plutôt bien dans mon jeu ! C'est chouette d'avoir autant de réponses, car ça me permet d'avoir plusieurs solutions et de mixer à ma sauce pour me dépatouiller. Sans vous, j'aurai bien du mal à avancer! Sinon j'ai une autre petite question: J'aimerai créer une instance devant le joueur et non pas à sa position. La petite difficulté, c'est que le joueur tourne sur lui même selon la position du curseur (vue de dessus). Si bien qu'il faudrait que je récupère des coordonnées en temps réel, et qui se situent entre le joueur et le curseur, et un peu devant le joueur. J'ai pensé à utiliser un point_direction, sauf que c'est un angle que je récupère... alors que ce qu'il me faudrait, c'est plutôt un x et un y... Bref, là je sèche bien comme il faut... :/ |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 15 Déc 2013 - 14:33 | |
| Trigo, toujours et encore :b
instance_create(x + lengthdir_x(rayon, direction), y + lengthdir_y(rayon, direction), object) |
|
| |
Black_cat Bonne participation
Messages : 71 Projet Actuel : https://www.youtube.com/playlist?list=PLrJ_sOwnC_FmBql7bimmXplsVcyDbZCVh
| Sujet: Re: quelques questions après lecture de la bible de GM Dim 15 Déc 2013 - 14:52 | |
| Génial onilink_, ça marche en effet parfaitement, j'avais complètement oublié cette fonction! Merci beaucoup !! |
|
| |
Contenu sponsorisé
| Sujet: Re: quelques questions après lecture de la bible de GM | |
| |
|
| |
| quelques questions après lecture de la bible de GM | |
|