AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 top down shooter AI

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: top down shooter AI    Mar 24 Sep 2013 - 11:53

ce matin en me levant j'ai eu une éclaire je génie! (ou pas) bref, j'ai eu une envie soudaine de créé un survival en top down. Pour l'instant en 2 heures sa déjà bien avancé et j'ai réussi à mettre en place quelque système que je trouve sympas mais la mon premier problème je veux faire un ai plus intelligente que elle que je fais habituelle ^^
(if (distance_to_object(obj_player)<250 == true) ) ^^ bref, je veux faire mieux que ça, ce que je veux ces que l’ennemie te voie uniquement dans un rayon de vision (un cône de vision ou il te voie) et si possible si un objet solide lui bloque le rayon de vision il ne voie pas le joueur.

j'ai chercher un peu j'ai trouver quelque AI vraiment bien fait mais j'ai pas encore trouver une ai qui ne repère pas ceux qui son derrière des objets solides ou etc ^^ j'espère avoir été claire ^^

_________________
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 12:38

Bah, collision_line ?

_________________
                 
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 15:38

Et pour le cone de vision : ((((a - b) mod 360) + 540) mod 360) - 180
avec a=direction du regard de l'ennemi et b=direction entre l'ennemi et le joueur

J'ai quand meme réussi à écrire ce calcul sur 2 topics en moins d'une minute awesome 

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:03

onilink_ a écrit:
Bah, collision_line ?
je connais pas cette fonction ^^ comment marche t'elle ? ^^ (J'ai essayer et pas aboutis ^^) et sinon térence jai pas le temps pour l'instant mais je vais essayer tout ça bientôt ^^ merci des réponse je vais éditer plus tard pour dire si sa marche ^^

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:07

Bah collision_line() t'indique si un objet entre en collision avec la ligne précisée... http://gamemaker.info/fr/manual#collision_line
Et ca sert à rien d'éditer, le topic ne sera pas signalé, poste plutôt un autre message Wink

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:26

j'ai essayer de quoi et me suis planté encore une fois (quel magnifique rime)
j'ai fait ça dans step de l'ennemie
Code:
if ((((6 - 180) mod 360) + 540) mod 360) -180
 {
 mp_potential_step(obj_player.x,obj_player.y,3.4,false);
 }
il y à pas d'erreur mais l'ennemie ne bouge pas (attention ici je rajoute une contrainte) et je vais faire aussi que l'enemie bouge aléatoirement sur la map (sa je sais plus ou moins faire ^^) bref comment marche la ligne de code que tu à poster qu'elle nombre fait quoi ^^ car je dois avouer pas comprendre comment sa marche ^^ (je suis qu'un débutant encore me taper pas ;P )

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:30

Nan mais angle1 et angle2 sont pas censées êtres des valeurs fixes...
angle1=direction; // ou image_angle, ca dépend de ton code
angle2=point_direction(x,y,heros.x,heros.y);

Et comme il faut que l'ennemi te voit pour qu'il te suive, ton mp_potential:step ne sert qu'à ralentir le truc ; fait le avancer en ligne droite...

J'avais fait un script pour un truc style TDS : http://cbna.forumactif.com/t12397-mes-ennemies-et-moi-recueil-de-l-intelligence-artificielle

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:41

merci pour le script il ma l'air pas mal le seul problème est que GM dit ne pas reconnaitre la fonction &&diffangle

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:44

Bah justement la fonction diffAngle tu le fait toi même :
Code:
//diffAngle(angle1,angle2)
return ((((angle1 - angle2) mod 360) + 540) mod 360) -180
Et je viens de voir que ta condition sert à rien, faut lui dire if(diffAngle(a,b)<90)) Là t'as un cône de vision de 90°...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 16:46

(merci de l'aide ^^)
d'acc j'essaie sa dans quelques heures je vais bidouiller un peu sa devrais aller (j'espère) mais la je dois aller en cour ^^ je reposte si quelque chose mais se soir je vais avoir plus de temps pour fouiller a gauche et a droite ^^

_________________
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 17:37

Térence68 a écrit:
Bah justement la fonction diffAngle tu le fait toi même :
Code:
//diffAngle(angle1,angle2)
return ((((angle1 - angle2) mod 360) + 540) mod 360) -180
Et je viens de voir que ta condition sert à rien, faut lui dire if(diffAngle(a,b)<90)) Là t'as un cône de vision de 90°...
return ((((argument0 - argument1) mod 360) + 540) mod 360) -180

_________________
                 
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 17:52

ok je vien d'essayer des choses parfois sa bug pas mais les ennemies bougent n'importe comment avant même que j'arrive ou eux et d'autre fois sa bug simplement ou ils bougent pas(ouaip je suis nul) alors si toi ou un autre avez le temps, vraiment uniquement si vous avez le temps j'ai 3 choix à proposer^^

#1 me faire un exemple vite fait sur gm (j'aime bien celle la ces sur que je vais réussir (mais peut-être pas comprendre ^^))

#2 me dire chaque chose que je dois faire et comment le faire exactement (comme si j'aurais 5 ans d'âge mental(je suis vraiment débutant (encore plus en gml)))

#3 tu n'as pas le temps et je comprend très bien ^^ je vais donc aller chercher sur internet pour trouver un exemple avec de la chance je vais pas trop chercher longtemps et au final sa va revenir au même

(existe t'il un site qui pourrais m'être utilse pour comprendre et surtout débuter en gml (tout mes jeux depuis des années ont été a 70% drag and drop) alors je souhaite faire ce jeu uniquement si possible en gml ^^ alors quelqun connais un bon site qui pourrais m'être utile? (ce site www.gamemaker.info date de longtemps est t'il encore très fiable?)

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 18:04

Sérieux c'est pas compliqué...
Donc t'as la fonction diffAngle comme l'a écrit onilink_ et dans le step de ton ennemi :
Code:

if(!collision_line(x,y,heros.x,heros.y,mur,true,true)&&diffAngle(image_angle,point_direction(x,y,heros.x,heros.y))<90){
  // il voit le héros et se dirige vers lui
  move_towards_point(heros.x,heros.y,5);
}else{
  // il ne voit pas le héros, tu peux lui faire faire ce que tu veux...
}
Après si tu veux qu'ils se battent entre eux (comme le mien), c'est plus compliqué... Indices : faut faire une boucle en utilisant instance_count et instance_id[], puis regarder le plus proche visible... (puis faut faire en sorte qu'il change pas de cible à chaque fois...)

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 18:26

''Sérieux c'est pas compliqué...'' je suis d'accord c'est vraiment pas compliqué pour quelqun d'habituer à game maker voir même quelqun d'habituer à programmer ou même simplement quelqun de plus intelligent que moi mais la présentement tu parle à quelqun qui n'a aucune base en programmation qui à jamais vraiment utiliser le gml (comme dit plus haut si je pouvais je le faisais en drag and drop) et qui pour la première fois rencontre se type de problème ^^ alors j'essaie de comprendre j'essaie vraiment mais j'ai de grande difficulté je te suis reconnaissant a toi et à oni_link de m'aider surtout sur des chose qui vous paraissent vraiment évidente mais qui pour moi sont du chinois ^^

bon pour revenir sur mon intelligence plus proche d'une roche que celle d'une mouche. En fait je comprend tout, sauf une chose et cette chose m'empêche de finir ces cela ''
Bah justement la fonction diffAngle tu le fait toi même :'' faut que je crée une fonction? si oui comment? j'ai copier la ligne de code que toi et oni m'avez donner je l'ai mis dans step sa faisais une erreur comme quoi il reconnais pas la fonction alors je l'ai mis dans create même chose alors comme sa marche car ces vraiment le dernier truc qui me pose problème cette fameuse fonction qui faut créé?

j'ai réussit à faire qu'ils voie le hérot uniquement si un objet solide le bloque pas sa donne sa
Code:
if (distance_to_point(obj_player.x,obj_player.y) <= 140)
    {
    if (collision_line(x,y,obj_player.x,obj_player.y,obj_solide_parent,0,1) == noone)
        {
        image_xscale = 1;
        image_yscale = 1;
        image_angle = direction;
        mp_potential_step(obj_player.x,obj_player.y,3.4,false);
        }
   
reste que le cone de vision mais sinon je crois que je vais simplement garder ça et utiliser comme excuse ils t'entendes ^^


(non pas besoin qu'ils se battent entre eux sa va être un survival (tous contre toi ^^) donc ils te voient te poursuive et rendu à une distance t'attaque ça je devrais m'en sortir seul)

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 19:02

Pour faire une fonction, tu créé un script, dans le champ name tu met diffAngle et dans le grand truc de texte, tu met la ligne d'oni.
Donc après tu peux facilement faire le cone.
Autre chose, dans ta condition avec collision_line, ne compare pas à noone, mais à false ; le noone marche peut etre mais c'est pas propre ; et vire ton mp_potential_step : cette fonction calcule tous les chemins possibles pour arriver à la destination, alors que dans ton cas, ca sera toujours une ligne droite... Utilise move_towards() plutot Smile

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 19:21

wow merci ça marche ^^ pas de bug cette fois juste une question il y à une façon d'afficher leurs connes de vision? car j'aimerais l'ajuster à mes besoins et sans le voir c'est un peu dur ^^

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 19:32

En cherchant u peu j'ai trouvé 4 topics : http://cbna.forumactif.com/search?mode=searchbox&search_keywords=arc+cercle&show_results=topics ; je les ai pas tous regardés, mais tu devrais pouvoir trouver...
Mais bon, c'est plus compliqué de l'afficher que de calculer avec diffAngle et tout le bordel, alors bon....
De toute facon mon code marche, après à toi de choisir quel angle max tu veux...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 19:53

oui j'ai regarder et on va y aller a l'arrache sa va être moins long mais surtout moins complexe x) en tout cas merci à vous deux d'avoir résolu mon problème ^^
edit: ouff finalement dernier truc qu'elle variable ou qu'elle chiffre je doit modifier pour changer le rayon? car la il me voie sur presque 250 degré j'ai limpression voir plus ^^ ou est-ce que son champ de vision change d'angle en même temps que les ennemies car la mes ennemies bougent toujours alors leurs direction changent constamment
Code:
&&diffAngle(image_angle,point_direction(x,y,obj_player.x,obj_player.y))<20)
ces le 20? car la j'ai test et il me voie pas quand je suis a côté de lui mais si je suis directement derrière ou en avant il me voie

_________________
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 20:00

Ouais c'est ca, tu remplace le 20 par la valeur que tu veux... Et vérifie qu'il te voit bien derrière, chez moi iavait pas ca problème, mais faut ptet rajouter une condition...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Mar 24 Sep 2013 - 20:14

Code:


image_xscale = 1;
image_yscale = 1;
image_angle = direction;

if (distance_to_object(obj_player)<250 == true)
{
if(!collision_line(x,y,obj_player.x,obj_player.y,obj_solide_parent,true,true)&&diffAngle(image_angle,point_direction(x,y,obj_player.x,obj_player.y))<30)
{
  // il voit le héros et se dirige vers lui
  vue = 1
  move_towards_point(obj_player.x,obj_player.y,2.3);
}
else
{
vue = 0
  // il ne voit pas le héros, tu peux lui faire faire ce que tu veux...
}
}
voila son event step au complet ^^ j'ai peut-être fait une boulette(encore) ^^ et je vien de vérifier il me voie effectivement de derrière et même de côté si je suis sur son côté en haut bizzard (en fait ces comme si son cone était du mauvais côté je crois) je voudrais que le cone suive la direction du l'objet

_________________
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: top down shooter AI    Mer 25 Sep 2013 - 20:07

onilink_ et Térence68 sont un cran au dessus,et pour eux tout est simple avec quelques fonctions mathématiques (mais bon y ont raison donc ...)
my solution pour les nuls gnii 
j'aurais créer pour ma part, un objet cône de vision avec le sprite qui va bien (c'est à dire en cône et invisible  quand tout marche) et ajusté sa position et les conditions de collision avec cet objet .

ce serait bien un cours de programmation de jeux,mais je me répète là... clinoeuil 

_________________
Code:
rnd=>insight=>play

http://gamemaker.info/fr/manual



Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Mer 25 Sep 2013 - 20:47

Erf, je crois avoir trouvé le problème mrgreen2 
C'est la ligne image_angle = direction : j'ai l'impression que ca 'tourne en boucle' (je sais pas comment l'expliquer...) ; donc voilà comment moi je faisais :
tu met l'image_angle=direction à la fin du code, c'est pas indispensable mais ca t'évite un décallage de l'affichage ; et surtout tu remplace le move_towards par ces lignes :
direction=point_direction(x,y,heros.x,heros.y);
speed=5;
et dans le else, ou il te voit pas, tu met speed=0;
Donc voilà ton code complet, en principe ca devrait marche impec' :
Code:

image_xscale = 1;  // pour ce code ca sert à rien mais je suppose que tu l'utilise pour autre chose, donc ci c'est la cas, n'y touche pas, ca ne change rien
image_yscale = 1;

if (distance_to_object(obj_player)<250)) // tu peux virer le ==true
{
if(!collision_line(x,y,obj_player.x,obj_player.y,obj_solide_parent,true,true)&&diffAngle(image_angle,point_direction(x,y,obj_player.x,obj_player.y))<30)
{
  // il voit le héros et se dirige vers lui
  vue = 1
  direction=point_direction(x,y,obj_player.x,obj_player.y);
  speed=2.3;
}
else
{
vue = 0
speed=0;
  // il ne voit pas le héros, tu peux lui faire faire ce que tu veux...
}
}
image_angle = direction;
Et sinon, merci marty, ca fait plaisir Wink
Pour le cours sur les jeux, ouais ce serait une bonne idée, mais comme d'hab', manque de temps pour tout le monde... M'enfin comme je suis privé d'ordi pour la semaine (Yum! ), je pourrais éventuellement faire un tuto sur comment faire un jeu de plate-forme basique (sur tablette, donc sans vraiment tester, ce serait plutot théorique) Smile

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Is Daouda
Utilisateur confirmé: Rang *
avatar

Messages : 270
Localisation : Lomé

MessageSujet: Re: top down shooter AI    Jeu 26 Sep 2013 - 11:12

pourquoi ne pas utilisé la fonction distan_to_point(x,y) neutre

_________________
"Celui qui trouve sans chercher a longtemps cherché sans trouver".
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: top down shooter AI    Jeu 26 Sep 2013 - 16:15

C'est bien de vouloir participer mais faut lire un minimum le sujet avant neutre 

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Is Daouda
Utilisateur confirmé: Rang *
avatar

Messages : 270
Localisation : Lomé

MessageSujet: Re: top down shooter AI    Jeu 26 Sep 2013 - 21:46

Au tant pour lui ?

_________________
"Celui qui trouve sans chercher a longtemps cherché sans trouver".
Revenir en haut Aller en bas
XxstamxX
Très bonne participation
avatar

Messages : 127
Localisation : Québec
Projet Actuel : Far Lands

MessageSujet: Re: top down shooter AI    Ven 27 Sep 2013 - 20:41

térence j'ai essayer ton code au début j'y ai cru mais en fait j'était chanceux au premier test car en fait il voie encore sur 210 degré ^^ a peu près dont derrière lui j'ai essayer plusieurs fois plusieurs chose rien marchais alors je m,était résolu a seulement faire a une certaine distance il te suis si tes pas derrière un mur et je crois que je vais laisser sa comme ça pour le moment mais si vous avez une solution hésiter pas je passe sur le forum de temps en temps alors mes réponses peuvent être longue à arriver ^^

_________________
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: top down shooter AI    

Revenir en haut Aller en bas
 
top down shooter AI
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Jeu Bubble Shooter
» Zombie Shooter 2D
» Fleurs,....fruit,.....tout ce qui se mange,...se boit....ou qui vient de la nature..........
» Gabriel Miller AKA Shooter (le retour!)

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: