| IA zelda | |
|
+3glcraft Sekigo Le Magnifique Jerelink 7 participants |
|
Auteur | Message |
---|
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: IA zelda Ven 14 Aoû 2009 - 2:23 | |
| Bonsoir a tous, je cherche a créer une intelligence artificielle se rapprochant de zelda, j'ai cherché sur le forum pour trouvé quelque chose de potable avec sa mp_potential_step(random(room_width),random(room_height),2,true); Mais le problème c' est que la il bouge un peu n'importe comment ^^ Comment faire pour que L'IA bouge correctement comme dans un zelda ? Dans la mesure ou je suis débutant, si c' est trop compliqué dans ce cas je laisse sa de coté et je m'attaque a moin difficile pour mieux apprendre le logiciel =p Merci a vous bonne soirée |
|
| |
Sekigo Le Magnifique Utilisateur confirmé: Rang *****
Messages : 1720
| Sujet: Re: IA zelda Ven 14 Aoû 2009 - 9:47 | |
| http://www.lecbna.org/pages/gm6.phpEn regardant dans les exemples du pack 6, il me semble qu'il y a un exemple pour ce que tu recherches. Edit => Oui, c'est dans la section [TheDarkTiger], tuto_zelda_enemis. |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Ven 14 Aoû 2009 - 12:06 | |
| Merci beaucoup =p, je pense voir sa bien plus tard, jpense que c' est encore un peu trop dur pour le moment ^^, je garde le gm6 sur mon pc sa me servira un jour =) |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: IA zelda Sam 15 Aoû 2009 - 19:18 | |
| Nan ba fait pas la mauvaise foi , tu peut utiliser game maker en temps que Drag&Drop ! Tu vera après pour le script mais pour l'instant utilise le D&D, Ca passera tout seul |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Sam 15 Aoû 2009 - 19:23 | |
| Tient justement, hier j'ai tenté de créer une IA moi même et j'avoue que le résultat est pas mal =p J' ai géré sa avec des alarms pour les changement de directions aléatoires et sa rend super =p Mais sauf quand le hero a est a -200pix du monstre, sa marche sauf que j'aimerais qu'il bouge dans 8 direction seulement, la c' est un peut du 0-360 xD Puis lors des collisions avec un mur la il arrête pas de bougé n'importe comment, super bizarre xD |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: IA zelda Sam 15 Aoû 2009 - 20:47 | |
| pour la direction, tu fais direction=round(random( )*45 et t'as les 8 directions S'il tourne bizarrement dans les murs, c'est peut être qu'il est coincé dedans. Essaye de voir si tu peux modifier ton script pour que l'IA regarde AVANT de se deplacer s'il va y avoir une collision, et comme ça, tu peux tout de suite executer ce qui se passe lors de la collision, et t'es sur que l'IA va pas se coincer dans un mur |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Sam 15 Aoû 2009 - 21:10 | |
| J'vais essayé sa, j'éditerais se soir ou demain pour dire si sa va ou pas, merci =p |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 19 Aoû 2009 - 10:39 | |
| Bonjour, je voulais juste précisé, que les IA me suivent gracent a mp_potential step, c' est quand même possible de limitté les mouvement de l'ia a 8 direction, autrement ce bout de code ne marche pas =/ |
|
| |
Invité Invité
| |
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 19 Aoû 2009 - 11:00 | |
| Justement j'ai essayé mais couplé a mp_potential_step l'IA nous fait une petite danse brésilienne |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: IA zelda Mer 19 Aoû 2009 - 16:42 | |
| des if if direction>37 and direction < 58 direction = 45 enfin, un truc du genre |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Dim 13 Sep 2009 - 15:31 | |
| Que de souvenir!!! xD Bon des ai de zelda, ça ce fait sur mesure, avec un system de path et grille certe, mais sur mesure quand même, aussi faudrais qu'avant de te lancer dedant tu comprenne bien comment ça marche, les monstre peuvent suivre la grille de 2 façon, en suivant 4 direction, ou 360... xD Les octorock, ça ce deplace dans 4 direction, et les Gelée ChuChu dans 360... Pour choisirs sont type de deplacement, ça ce passe ici: mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag) c'est à dire a la création du path par raport a la grille, en metant 0 a allowdiag, le path ce fera en 4 direction, si tu met 1, il le fera sans restriction au niveau des direction. et pour le sprite en fonction des direction, voici les condition: - Code:
-
/*------ Sprite ------*/ /*--- haut ---*/ if (direction>=45&&direction<=134) { sprite_index=spr_up; } /*--- bas ---*/ if (direction>=225&&direction<=314) { sprite_index=spr_down; } /*--- gauche ---*/ if (direction>=135&&direction<=224) { sprite_index=spr_left; } /*--- droite ---*/ if (direction>=315&&direction<=360) { sprite_index=spr_right; } if (direction>=0&&direction<=44) { sprite_index=spr_right; } /*------------*/ Voila. =) |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Lun 14 Sep 2009 - 12:56 | |
| Merci beaucoup sa va vachement m'aidé tout sa =p ! Par contre juste une petite question, comment sa marche exactement : - Code:
-
mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag) ? Parce a la base, un path suit un chemin prédéfinit par l'utilisateur et non un objet peut importe sa position sur la map..Enfin je dit sa je dit rien ^^' Merci et bonne journée =p |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mar 15 Sep 2009 - 16:32 | |
| non oublie tout ce que tu pense des path, un path c'est tout simplement un chemin, tu peut donc le manipuler et le modifier même une fois le jeux lancer, pour ça il y a des commande, avant tout, tu doit crée une grille, la grille que suivra ton path pour arrivé a destination, a toi de choisir la plus adapter au sprite de ton jeux, pour zelda minish cap, le must reste de faire une grille en 16*16, pour cela il y a le code suivant quand le jeux commence: - Code:
-
global.grid=mp_grid_create(0,0,room_width/16,room_height/16,16,16); la grille et donc crée et son id est retourner via la variable global.grid, tu poura grace a ça y faire appel plus tard. Ont a donc une grille de 16*16 qui fait tout l'ecrant, il faut maintenant rajouter les objet que doit evité le monstre ou tout autre ai pour aller du point de départ a l'arriver, pour cela tu a la commande: - Code:
-
mp_grid_add_instances(global.grid,obj_bloc1,1); Si tu veux mon avis perso, crée un objet, moi je l'ai appeler bloc1, et quand tu a envie que ton path evite un objet précis: Si il est imobile dans create tu met: - Code:
-
ii=instance_create(x,y,obj_bloc1); ii.sprite_index=sprite_index; ii.image_alpha=0; et s'il bouge, tu fait pareil mais tu met dans step: - Code:
-
ii.x=x; ii.y=y; Ca t'évitera de devoir modifier a chaque fois ton code pour rajouter une instance a la grille, Résumont une fois de plus pour que ça rentre bien, tu a une grille, des case vide s'il n'y a pas de "bloc1" dessut, dans le cas contraire elle seront marquer comme pleine, et ceci en direct live. x) Maintenant il faut être vigilant, parfois, le chemin sera impossible a effectuer pendant quelque seconde, le temps qu'un objet ce deplace aussi pour eviter des message d'erreur du style le path n'existe pas "path", il faut toujours verifier avant que le chemin est possible: dans créate: - Code:
-
path=path_add(); dans step: - Code:
-
if (!path_exists(path)) { path=path_add(); }
if (path_exists(path)) { mp_grid_path(global.grid,path,x,y,i.x,i.y,1); /*---rajoute tous les objet solid a la grille--*/ mp_grid_add_instances(grid,obj_bloc1,1); path_start(path,1.5,0,false);
if (!mp_grid_path(global.grid,path,x,y,i.x,i.y,1)) { path_delete(path); } } Ce code pour faire simple, crée le path s'il n'éxiste pas, puis, s'il existe le demarre et pour finir, si le chemin via la grille est impossible supprime le path et recommence jusqu'a ce que le chemin soit possible. Voila tu sait a peut pret tout, je ne sait pas si cette methode est la meilleur, mais en tout cas, elle marche bien. ^^ J'espère avoir bien expliquer et rien oublié... xD |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mar 15 Sep 2009 - 23:29 | |
| C' est m'a lair super ce système pour évité les quelque bug de collision des IA =O, mais ce que je voulais réellement savoir c' est comment faire pour que l'IA se deplace vers moi, j'ai bau lire et relire je ne voit pas la partie du code qui l'indique oO Merci bonne soirée =) |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 0:00 | |
| Dans la logique, tu le met a la création du path grace a la grille, a la ligne: mp_grid_path(global.grid,path,x,y,i.x,i.y,1); ici j'ai mis i.x, et i.y mais c'est tout simplement car j'avais utiliser instance_nearest, bref: mp_grid_path(global.grid,path,la coordonée x du départ du path,la coordonée y du depart du path ,la coordonée x de toi, la coordonée y de toi ^^,1); |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 0:03 | |
| J'doit vraiment être nul, le monstre ne bouge même pas, même en suivant tout a la lettre =s.... |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 0:07 | |
| je vais te crée un exemple, attend juste un peut. =) |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 0:08 | |
| Te donne pas tant de peine oO ! |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 0:33 | |
| |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 1:17 | |
| Vraiment super ! oO, a part le fait que quelque fois le chemin se rompt c' est vraiment sa a quoi je m'attendait Merci =O !! |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 11:05 | |
| - Citation :
- Maintenant il faut être vigilant, parfois, le chemin sera impossible a effectuer pendant quelque seconde, le temps qu'un objet ce deplace aussi pour eviter des message d'erreur du style le path n'existe pas "path", il faut toujours verifier avant que le chemin est possible
donc c'est normal, si dans le chemin, il n'y a pas 16 pixel de libre, le chemin sera impossible et le path comme tu dis, ce rompt. =) enfin, je pense que tu a tout ce qu'il te faut pour comprendre comment ça marche maintenant, si tu bloque relis ce topic tu trouvera la solution je pense. =) |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 13:05 | |
| Le truc c' est que j'ai pu constaté que le chemin s'arrêter si j était en collision avec un mur vers le haut, dans la logique des chose j'ai changé l'origine link.y a +5 et la plus de souci c' est impeccable merci encore c' est super ! ^^ |
|
| |
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 14:11 | |
| Pour ton IA de style Zelda, je te conseille d'utiliser les algo de pathfinding associés à la gestion en grille. C'est plus efficace car déterministe. Par contre, les mouvements des IA seront limités aux quatres directions + les diagonales. |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 14:14 | |
| Comment fonctionne cette methode ? |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 14:36 | |
| c'est la même methode que c'elle que je t'ai déjà expliquer. =) moi j'appel ça system de path et grille mais c'est la même chose. =) |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 14:38 | |
| Ahh okey x) Me reste plus qu'a résoudre un detail etrange..,a quelque endroit dans les diagonal quand je suis en collision l'IA ne suit plus, pourtant le draw de ton path n'empiète pas sur les collisions Oo |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 15:05 | |
| Problème trouvé, malheureusement impossible a résoudre je pense =/: Voila un croquis vite fait : Les carré noirs se sont les collisions, les triangles ce sont les pentes sur les quelles le perso et aussi en collision, comme dans tout zelda quoi x). En bleu c' est se que L'ia évite, soir des blocks, l'ia ne prend pas en compte la pente donc quand le point link.x,link.y se trouve la ou il y a une croix le chemin est rompue =/ |
|
| |
keïtchi Utilisateur confirmé: Rang **
Messages : 366 Localisation : Don't Follow me, I'm lost too!
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 15:18 | |
| Désoler, je ne voix pas le croqui. xD |
|
| |
Jerelink Bonne participation
Messages : 71 Projet Actuel : Zsog
| Sujet: Re: IA zelda Mer 16 Sep 2009 - 15:19 | |
| |
|
| |
Contenu sponsorisé
| Sujet: Re: IA zelda | |
| |
|
| |
| IA zelda | |
|