AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [résolu] Problème de gestion IA

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

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 13:56

Salut,

j'ai commencer un petit "tower defence" en reprenant la base d'un ancien de mes projets... Pour moi, mon script a l'air bon, mais en jeu, mon IA fait un peu comme bon lui semble.

Elle est censé : si un ennemi est dans la zone X alors aller vers lui, dès que l’ennemi est trop loin, revenir a ça position initial.

Le soucis, donc, c'est que des moment elle y va, des moment non, des moments elle reviens a ça place et des moments non... C'est assez gavant sachant surtout que je n'ai pas la moindre idée d'où viens le problème... Donc si quelqu'un aurais la gentillesse de me dire comment faire où au moin de localisé le problème...

Merci.

//////////////////////////////////////////////////////////////////////////
//////////////////////// MOUVEMENTS /////////////////////////////////////
////////////////////////////////////////////////////////////////////////
if bouge = 1
{
if (direction >= 0 && direction <= 22.5)
{
sprite_index = spr_fighterM_droite
}
if (direction >= 22.5 && direction <= 67.5)
{
sprite_index = spr_fighterM_hautdroite
}
if (direction >= 67.5 && direction <= 112.5)
{
sprite_index = spr_fighterM_haut
}
if (direction >= 112.5 && direction <= 157.5)
{
sprite_index = spr_fighterM_hautgauche
}
if (direction >= 157.5 && direction <= 207.5)
{
sprite_index = spr_fighterM_gauche
}
if (direction >= 207.5 && direction <= 257.5)
{
sprite_index = spr_fighterM_basgauche
}
if (direction >= 257.5 && direction <= 307.5)
{
sprite_index = spr_fighterM_bas
}
if (direction >= 307.5 && direction <= 357.5)
{
sprite_index = spr_fighterM_basdroite
}
if (direction >= 357.5 && direction <= 0)
{
sprite_index = spr_fighterM_droite
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////// mouvement //////////////////////////////////////
////////////////////////////////////////////////////////////////////////
if (distance_to_object(obj_applekid) = 60)
{
bouge = 1
move_towards_point(positionX,positionY,3)
}
if (distance_to_object(obj_applekid) <= 50)
{
bouge = 1
move_towards_point(obj_applekid.x,obj_applekid.y,3)
}
///////////////////////////retour//////////////////////////////////
if (position_meeting(positionX,positionY,self) && bouge = 1)
{
bouge = 0
speed = 0
sprite_index = spr_fighterM_bas
}
////////////////////////attaque//////////////////////////////////
if (distance_to_object(obj_applekid) < 5 && blocage = 0)
{
if (direction >= 0 && direction <= 22.5)
blocage = 1
alarm[0] = 5
{
sprite_index = spr_fighterM_atkdroite
blocage = 1
alarm[0] = 5
}
if (direction >= 22.5 && direction <= 67.5)
{
sprite_index = spr_fighterM_atkhautdroite
blocage = 1
alarm[0] = 10
}
if (direction >= 67.5 && direction <= 112.5)
{
sprite_index = spr_fighterM_atkhaut
blocage = 1
alarm[0] = 10
}
if (direction >= 112.5 && direction <= 157.5)
{
sprite_index = spr_fighterM_atkhautgauche
blocage = 1
alarm[0] = 10
}
if (direction >= 157.5 && direction <= 207.5)
{
sprite_index = spr_fighterM_atkgauche
blocage = 1
alarm[0] = 10
}
if (direction >= 207.5 && direction <= 257.5)
{
sprite_index = spr_fighterM_atkbasgauche
blocage = 1
alarm[0] = 10
}
if (direction >= 257.5 && direction <= 307.5)
{
sprite_index = spr_fighterM_atkbas
blocage = 1
alarm[0] = 10
}
if (direction >= 307.5 && direction <= 357.5)
{
sprite_index = spr_fighterM_atkbasdroite
blocage = 1
alarm[0] = 10
}
if (direction >= 357.5 && direction <= 0)
{
sprite_index = spr_fighterM_atkdroite
blocage = 1
alarm[0] = 10
}
}



(je ne l'ai pas mit un "code" pour ne pas couper le scripte et ainsi le voire en entier.


Dernière édition par kujaff le Mer 5 Juin 2013 - 9:23, édité 1 fois
Revenir en haut Aller en bas
hofmeister
Bavard


Messages : 109

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 14:15

Bonjour, peut-être que dans "mouvements" pour le test vérifiant que la distance est égale à 60, il faudrait mettre >=? Parce que là, ce n'est pris en compte que pour une distance précise. D'autre part il y a une marge, entre 50 et 60, où rien ne se passe, c'est normal? (Je sais pas si je suis clair).
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 14:55

Ouai, je mettrai les supérieur ou égal... en te lisant, ça m'a fait réagir a un truc...

Il faut que je mette

si la distance est inférieur ou égale a 50 alors
sur la distance est supérieur ou égale a 50 alors...

j'ai donc mit

if (distance_to_object(obj_applekid) >= 50)
{
bouge = 1
move_towards_point(positionX,positionY,3)
}
if (distance_to_object(obj_applekid) <= 50)
{
bouge = 1
move_towards_point(obj_applekid.x,obj_applekid.y,3)
}

c'est un peu mieux, mais ça peut arriver de "planter" avec le mec qui ne fait rien, et une fois a l'heure place ils sont tout affolés et leurs animation "bouge" dans tout les sens et n'est donc pas "fixe".
Revenir en haut Aller en bas
hofmeister
Bavard


Messages : 109

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 15:03

Je pense qu'il faut mettre une des conditions >= et l'autre <, sinon l'objet veut faire les deux à la fois quand la distance est exactement de 50.
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 15:36

Pas faux, mais ça ne résous pas mon problème, on va dire qu'il bouge qu'une fois et s'il arrive a leur place d'origine des moments ils ne bougent plus :s
Revenir en haut Aller en bas
hofmeister
Bavard


Messages : 109

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 16:08

Je ne comprends pas très bien... L'objet se déplace une fois vers l'ennemi, revient à sa place puis ne réagit plus, c'est ça?
Sinon les scripts mouvement et retour sont dans quel event?
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 16:54

Oui, c'est ça. Et des moment ils ne bougent carrément pas, c'est étrange...

Tout est dans mon Objet dans Step. Dans obj_fighterM, qui est celui qui est censé ce déplacer.
Revenir en haut Aller en bas
hofmeister
Bavard


Messages : 109

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 4 Mar 2013 - 17:52

Pour les conditions du retour, essaie de rajouter "si la distance est supérieure à 50"
Edit: non, c'est pas terrible, tu devrais plutôt régler une deuxième variable à vrai dans la condition <50, puis la tester ==false dans
les conditions du retour, et bien sur la regler sur false au debut du step
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Mer 6 Mar 2013 - 10:18

Je dois t'avoué que j'ai pas tout suivi, je poste au cas ou mon projet GM8 si tu arrive ou qqun d'autre a le faire marcher correctement ^^'

mediafire.com ?5oz35fs6xis1az9
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 9:20

Salut, je continue se topic car j'ai un soucis equivalent sur un de mes projets...

Une fois l'objet a ça place, il n'arrete pas de "trembler" et c'est assez embettant...

Voici mon code :/

if direction > 315 && direction < 45
{
sprite_index = spr_fighter_right
}
if direction > 45 && direction < 135
{
sprite_index = spr_fighter_up
}
if direction > 135 && direction < 225
{
sprite_index = spr_fighter_left
}
if direction > 225 && direction < 315
{
sprite_index = spr_fighter_down
}
///////////////////////////////////////////
if distance_to_object(obj_enemy) < 40
{
move_towards_point(obj_enemy.x,obj_enemy.y,3)
}
////////////////////////////////////////////////
if distance_to_object(obj_enemy) > 40
{
move_towards_point(position_x,position_y,3)
}
//////////////////////////////////////////////
Revenir en haut Aller en bas
Mobi
Utilisateur confirmé: Rang ****
avatar

Messages : 1256
Localisation : Dijon

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 9:45

Faut utiliser les réseaux neuronaux awesome

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

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 9:47

ça m'aide enormement lol ! I joke...
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 14:35

ajoute un événement ou le perso est au repos avec un speed à zéro!
car les fonction move to ,speed ect donne (j'avance dans une direction ,j'avance dans une autre direction mais jamais, là je peux m’arrêter)
il faut donc indiquer à quel moment il s’arrête.

_________________
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: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 16:22

GM utilise des doubles pour toutes ses variables, donc suffit de caster : dans step :
x=round(x);
y=round(y);

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

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 16:57

térence ta solution marche pour l'animation avant que le perso bouge.

Enfaite, le soucis c'est que le perso ne reviens pas EXACTEMENT a ça place :/
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 17:02

A combien de pixels près ?
Essaie d'arrondir aussi xstart et ystart (si c'est pas en lecture seule).

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

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Ven 31 Mai 2013 - 17:34

je dirais a peut pret 5 ou 6 pixel...

je ne sais pas utilisé le xstart et ystart ^^' premiere fois que j'en attend parler
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 3 Juin 2013 - 15:25

Up Wink

Personne pour m'aider ? :/ je suis bloqué. Je sais d'ou viens le soucis mais aucune idée de comment y remedier...

En faite, mon perso ne reviens pas exactement a ça place initial ce qui ne permet pas de remplir les bonne condition pour l'animation... Je peux eventuelement passé mon .gmk.

Merci d'avance.
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: [résolu] Problème de gestion IA   Lun 3 Juin 2013 - 19:16

bah, envoie ton gmk (sur quel version GM travaille tu?)
sur cette adresse:
http://www.simpleupload.fr/
pit'être qu'on pourra t'aider.

_________________
Code:
rnd=>insight=>play

http://gamemaker.info/fr/manual



Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Mar 4 Juin 2013 - 9:32

Voila merci : http://simpleupload.fr/?c=A0s4q6l!LS2mcxUI je suis sous GM 8.o pro
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: [résolu] Problème de gestion IA   Mar 4 Juin 2013 - 19:57

je t'ai juste changer un truc pour que cela fonctionne

bouge 2 état
instance_nearest transformé en distance to point

http://simpleupload.fr/?c=A0CW2Oi!fJG7Zv54

bonne continuation

_________________
Code:
rnd=>insight=>play

http://gamemaker.info/fr/manual



Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [résolu] Problème de gestion IA   Mer 5 Juin 2013 - 9:22

Merci Man Wink
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [résolu] Problème de gestion IA   

Revenir en haut Aller en bas
 
[résolu] Problème de gestion IA
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu] Problème avec fichiers BKH
» [résolu]Problème à l'ouverture d'un fichier H13
» [résolu]Problème avec Dictionnaire des Lieux
» [résolu] Problème de format d'images avec l'édition de la chronique familiale
» [résolu] Problème export gedcom vers Généanet

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: