AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Manga Chainsaw Man : où acheter le Tome 17 édition Collector de ...
19.99 €
Voir le deal

 

 IA d'un object

Aller en bas 
2 participants
AuteurMessage
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 15:36

Bonjour !

J'ai récament chercher a faire une IA sur GM8 mais il y a TOUJOURS un soucis , mon ia est super simple mais j'arrive jamais a faire ce que je veut ^^

Bref je vous explique , j'ai :
un obj_player : mon personnage
un object15 ( oui je sais je dois changer le nom ^^ ) : qui lui est le monstre
4 object de topaz22 ( système de plateforme ) pour les object solide et en pente

Ce que je veut faire :
Faire en sorte tout simplement que le monstre test avec un colision line si il y a un mur devant lui alors il ne doit pas allez vers le personnage , mais si il y a rien entre lui et le player alors le monstre se déplace vers le Player et a se moment la dès qu'il y a une colision le monstre enlève de la vie ( dans mon cas c'est "article_vie" ) au player TOUTE les 1-5 seconde , enfin une temps pas trop abusé ^^

Mon problème :
_Dès que je met mon monstre , mon monstre one shoot le player alors qu'il n'y a pas de colision
_Mon monstre fonce vers mon personnage sans tester si il y a un mur devant lui ( si il y a un murt devant lui il fonce quand meme ) .

Mon code :

Code STEP pour que le monstre test si il y a les object solide des 4 object de topaz22 ( système de plateforme ).
Je voulai faire en sorte que dès que le monstre test qu'il y a un object devant lui alors une variable augmente de 30 , comme il y a 5 object , cela fait que ma Variable est a 150 si il n'y a pas d'object devant elle ( 30*5 = 150 ) si la var est a 150 alors le monstre part vers le Player .

Code:
if !collision_line (x,y,obj_solide.x,obj_solide.y,self,1,0)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_monte.x,obj_pente_monte.y,self,1,0)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_descend.x,obj_pente_descend.y,self,1,0)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_inverse_bas.x,obj_pente_inverse_bas.y,self,1,0)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_inverse_haut.x,obj_pente_inverse_haut.y,self,1,0)
{
article_colision +=30
}

Code:
if article_colision ==150
{
move_towards_point(obj_Player.x, obj_Player.y, article_vitesse);
article_colision =0
}

Code pour le monstre en STEP pour que dès qu'il y a une colision le Player perd -1 point de vie toute les secondes .
Code:
if !place_meeting(obj_Player.x,obj_Player.y,obj_Player)
{
 article_temps +=1
 
 if article_temps=article_reset
  {
  global.vie -=1
  }
}

if article_temps=article_reset2

{
article_temps=1
}


Merci beaucoup et énormément si vous savez pourquoi cela ne marche pas car mon cerveau va exploser ( malgré le petit code que c'est ^^)

Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 15:46

J'ai pas tout vérifié, mais tes collision_line sont faux.

Tu tester la collision entre le monstre (x,y) et un objet de topaze (obj_solide.x,obj_solide.y) au lieu de tester la collision entre le monstre et le player!


_________________
IA d'un object Control_commentTous les icones de gm utilisables sur le cbna ICI IA d'un object Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 16:50

if !place_meeting(obj_Player.x,obj_Player.y,obj_Player)
je test la colision avec le player si je met obj_player , a moin que je me trompe ^^
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 17:15

Mais tu ne veux pas savoir si il y a un objet_solide entre le monstre et le player? Et donc tester la collision avec un objet_solide entre la position du monstre et du joueur?

_________________
IA d'un object Control_commentTous les icones de gm utilisables sur le cbna ICI IA d'un object Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 17:24

Je voudrai avoir une colision entre le monstre et le player , mais je veut tester si il y a pas sur son chemin des mur , pour ne pas que le monstre ai un wall hack et puisse aller vers le player uniquement si c'est dans son champ de vision
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 17:29

c'est bien ce que je dis :
Tu traces une ligne entre le player et le monstre, et tu veux savoir si il y a un mur sur cette ligne:

collision_line(x,y,obj_player.x,obj_player.y,obj_solid,1,1)

_________________
IA d'un object Control_commentTous les icones de gm utilisables sur le cbna ICI IA d'un object Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 17:34

ha ok pour cette ligne ^^ , j'avai mis pour le primier code :
if !collision_line (x,y,obj_solide.x,obj_solide.y,self,1,0)
ce qui est a peut prèt la meme chose mais je vais test ^^
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 17:38

Non apparament cela n'a rien changer , j'ai bien mis :
Code:
if !collision_line (x,y,obj_solide.x,obj_solide.y,self,1,1)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_monte.x,obj_pente_monte.y,self,1,1)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_descend.x,obj_pente_descend.y,self,1,1)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_inverse_bas.x,obj_pente_inverse_bas.y,self,1,1)
{
article_colision +=30
}

if !collision_line (x,y,obj_pente_inverse_haut.x,obj_pente_inverse_haut.y,self,1,1)
{
article_colision +=30
}
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyMer 18 Déc 2013 - 22:39

Mais boudiou.... marque donc ce que j'ai marqué !!!

collision_line(OBJET_MONSTRE.x , OBJET_MONSTRE .y , OBJET_JOUEUR.x , OBJET_JOUEUR.y , OBJET_PENTE , 1 , 1 )

_________________
IA d'un object Control_commentTous les icones de gm utilisables sur le cbna ICI IA d'un object Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyJeu 19 Déc 2013 - 12:58

Code:
if collision_line (self.x,self.y,obj_solide.x,obj_solide.y,obj_solide,1,1)
{
article_colision +=30
}

if collision_line (self.x,self.y,obj_Player.x,obj_Player.y,obj_pente_monte,1,1)
{
article_colision +=30
}

if collision_line (self.x,self.y,obj_Player.x,obj_Player.y,obj_pente_descend,1,1)
{
article_colision +=30
}

if collision_line (self.x,self.y,obj_Player.x,obj_Player.y,obj_pente_inverse_bas,1,1)
{
article_colision +=30
}

if collision_line (self.x,self.y,obj_Player.x,obj_Player.y,obj_pente_inverse_haut,1,1)
{
article_colision +=30
}

La mon monstre ne réagie plus x)
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object EmptyVen 20 Déc 2013 - 17:29

Bon j'ai réussi a résoudre le problème que si le monstre ne voie pas le joueurs alors il ne peut pas le suivre en faisant un parent a chaque objet "mur" de ma map, qui est constamant sur le map , et tout simplement faire :


Code:
if !collision_line (self.x,self.y,obj_Player.x,obj_Player.y,obj_block,1,1)
{
move_towards_point(obj_Player.x, obj_Player.y, article_vitesse);
}
Sa marche très bien mais j'ai encore le problème que me monstre me Oneshoot direct alors qu'il ne me voie pas --" et sa c'st pas top top , si vous savez pourquoi cela arrive et aussi comment changé mon code pour que si il y a une colision avec le player alors le monstre va endommagé le player toute les 5 secondes .

j'ai essayer :
Code:
if collision_circle(obj_Player.x,obj_Player.y,8,obj_Player,2,1)
{
 article_temps +=1
 
 if article_temps=article_reset
  {
  global.vie -=1
  }
}

if article_temps=article_reset2
{
article_temps=0
}

Mais sa me one shoot toujours ..
Revenir en haut Aller en bas
Contenu sponsorisé





IA d'un object Empty
MessageSujet: Re: IA d'un object   IA d'un object Empty

Revenir en haut Aller en bas
 
IA d'un object
Revenir en haut 
Page 1 sur 1

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: