AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

 

 Ennemis chassent le joueur et sautent

Aller en bas 
2 participants
AuteurMessage
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

Ennemis chassent le joueur et sautent Empty
MessageSujet: Ennemis chassent le joueur et sautent   Ennemis chassent le joueur et sautent EmptyVen 15 Jan 2016 - 21:11

Bonjour à tous!

Bon je me retrouve dans une situation sans en voir le bout...

Pour une mise contexte, je cherche à faire un jeu dans lequel les ennemis spawn de sources bien précises.

Je voudrais que chacun d'entre suive le joueur dès leur apparition.

J'ai bien essayé d'utiliser la fonction move_toward_point, malheureusement lorsque celle ci est appelée, les collisions entre les plateformes et les ennemis n'existent plus, ces derniers passent au travers des premières.

De plus, je voudrais que lorsque le joueur se retrouve en hauteur par rapport aux ennemis, ceux-ci sautent pour atteindre la plateforme.

J'ai beau retourner le problème dans ma tête, je ne trouve pas de solution...

Pour ce qui de sauter sur la plateforme, j'ai bien une idée. Je voudrais que lorsque le joueur est détecté sur une plateforme dont la valeur y est supérieure à la valeur y d'un ennemi, celui-ci se rue vers un objet transparent le plus proche dont la valeur x est égale à la valeur x de l'ennemi, afin que ce dernier saute en entrant en collision cet objet transparent (qui pour le coup ferait office de jumper en modifiant la vspd de l'ennemi).

Mais jusque là je n'arrive pas à faire en sorte que les ennemis pourchassent correctement le joueur, avant de les faire sauter lorsque le joueur se trouve en hauteur.

Quelqu'un à idée de la manière dont je pourrais procéder? rouge

Merci d'avance!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Ennemis chassent le joueur et sautent Empty
MessageSujet: Re: Ennemis chassent le joueur et sautent   Ennemis chassent le joueur et sautent EmptyVen 15 Jan 2016 - 21:45

T'as deux grandes familles de solutions:
-IA basée sur un algo de pathfinding comme A*, dans un jeu de plateforme c'est plus compliqué a mettre en oeuvre qu'en top down
-placer des objets manuellement qui permettront aux 'IA' d'agir de manière bête et disciplinée selon le cas de figure qui se presente

Pour le premier point, quelques liens pour comprendre l'idée (pathfinding platformer sur google):
http://gamedevelopment.tutsplus.com/tutorials/how-to-adapt-a-pathfinding-to-a-2d-grid-based-platformer-theory--cms-24662
http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/generalized-platformer-ai-pathfinding-r3924
Un editeur pour comprendre comment la grille de pathfinding est calculée en live: http://ashblue.github.io/pathfinding-platformer/

Pour le deuxième point ça me parait le plus simple a mettre en oeuvre, par exemple tu places des objets qui indiquent, selon la direction (gauche/droite) et le cas de figure (joueur en haut/joueur en bas) ou l'IA doit aller.
Comme ça t'as pas de pathfinding a coder, par contre tu dois le faire manuellement sur la map (ce qui peut être embêtant dans le cas d'un jeu avec beaucoup de niveaux assez longs).


_________________
Ennemis chassent le joueur et sautent Runningpotato1Ennemis chassent le joueur et sautent TvF6GED Ennemis chassent le joueur et sautent MdetltS
Revenir en haut Aller en bas
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

Ennemis chassent le joueur et sautent Empty
MessageSujet: Re: Ennemis chassent le joueur et sautent   Ennemis chassent le joueur et sautent EmptyVen 15 Jan 2016 - 22:22

Vraiment merci pour cette doc, le tout à l'air passionnant et je vais évidemment lire ça avec attention.

Toutefois, après avoir feuilleté le tout rapidement, il me semble que dans le cas qui est le mien, je sois plus ou moins contraint de jongler entre les deux méthodes.

Actuellement mes ennemis spawn et se déplacent. S'ils rentrent en collision avec une plateforme (y), ils changent de direction. Pour plus de précisions, voici comment l'IA est codée pour le moment:

hsp = dir * movespeed;
vsp += grav;

 //Horizontal

if (place_meeting(x+hsp,y,obj_plateforme)) {

  while(!place_meeting(x+sign(hsp),y,obj_plateforme)) {
  x += sign(hsp);
  }
  hsp = 0;
  dir *= -1;
  }
  x += hsp;

//Vertical

if (place_meeting(x,y+vsp,obj_plateforme)) {
  while(!place_meeting(x,y+sign(vsp),obj_plateforme)) {
  y += sign(vsp);
  }
   vsp = 0;
   }
   y += vsp;

if (place_meeting (x,y,obj_Bullet)) {

  instance_destroy ();
  }

if (x < obj_chara.x) {
hsp = 4 ;

}
if (x > obj_chara.x) {
hsp = -4;

}

//Follow player
           
Pour le moment je ne sais pas trop comment indiquer aux ennemis de suivre le joueur. J'avais pensé leur demander de seulement tenir compte de la valeur de x pour éviter qu'ils se retrouvent à sauter comme des idiots au moment ou le joueur lui aussi sautait, ce qui était le cas jusque là.

Seulement, à tenir compte que de la valeur de x, je vais face à un problème d'ordre logique, je m'explique. Je cherche à réaliser un réaliser un shooter-platformer à écran fixe, dont le design de la salle test ressemble à ceci:

-----------------------
I   E                      
I----                -----
I                          
I      ------------      
I                          
I   J                      
I---------------------

Très logiquement si le joueur (J) dans ce cas précis se dirirge vers la gauche, l'ennemi E fera de même du haut de sa plateforme, ce qui j'en conviens, rend la situation absurde.

Bon, je présume que je suis condamné à faire du pathfinding... Ce qui ne me déplait pas, bien au contraire, j'ai très envie d'apprendre mais je n'ai pas encore tout à fait le niveau j'imagine!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Ennemis chassent le joueur et sautent Empty
MessageSujet: Re: Ennemis chassent le joueur et sautent   Ennemis chassent le joueur et sautent EmptyVen 15 Jan 2016 - 23:23

Y a un algo de pathfinding codé en interne dans GM avec les fonctions qui commencent par mp (move potential), sauf que c'est presque autant le bordel a utiliser qu'a faire, et je vois pas comment y aurait moyen d'utiliser ça dans un platformer (on peut pas definir le coût d'une node).
J'ai déjà eu a l'utiliser pour un jeu case par case en top down, ça faisait l'affaire mais c'était déjà pas très folichon a utiliser (la sortie est dans un path, très malin...)

Après vu la commu derrière GM a mon avis tu trouvera plusieurs implémentations déjà prêtes en cherchant un peu, comme celle ci qui semble bien fonctionner: http://gmc.yoyogames.com/index.php?showtopic=286571

_________________
Ennemis chassent le joueur et sautent Runningpotato1Ennemis chassent le joueur et sautent TvF6GED Ennemis chassent le joueur et sautent MdetltS
Revenir en haut Aller en bas
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

Ennemis chassent le joueur et sautent Empty
MessageSujet: Re: Ennemis chassent le joueur et sautent   Ennemis chassent le joueur et sautent EmptyLun 18 Jan 2016 - 9:48

Salut,

navré pour ma réponse tardive, simplement merci pour toute cette doc, je me pencherai là dessus.

Dès qu'une solution sera trouvée, je reviendrai la poster ici dans pour filer un coup de main à ceux qui sont dans la même situation que moi.

À plus!
Revenir en haut Aller en bas
Contenu sponsorisé





Ennemis chassent le joueur et sautent Empty
MessageSujet: Re: Ennemis chassent le joueur et sautent   Ennemis chassent le joueur et sautent Empty

Revenir en haut Aller en bas
 
Ennemis chassent le joueur et sautent
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ennemis intelligents
» Collision des ennemis.
» Mouvement ennemis
» Ennemis qui tire?
» Deplacements ennemis

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: