Diriger un même objet a differents endroits

Bonjour,

Me voila de nouveau bloquer j’explique mon soucis.

J’ai une scène ou lors d’une action des ennemis apparaissent (7 au total), sur la map son positionné 7 capteurs. J’aimerais simplement que lorsque les ennemis sont crées ils se déplacent vers un capteur au hasard sans jamais qu’il y est 2 ennemis sur un même capteur.

J’ai pensé au départ à attribuer une variables “select” a chaque objets ennemis en aléatoire en espérant que chaque objets ennemi possèdent un chiffre entre et 1 et 7 mais certains ont des fois le même nombres donc ça m’avance pas à grand chose. J’ai pensé aussi à lier l’objet ennemi avec capteur mais ça ne fonctionne pas non plus.

J’arrive pas à trouver une expression pour diriger un ennemi dupliquer 7 fois sur un capteur dupliquer 7 fois aussi. Ou alors j’édite 7 objets dans l’éditeur d’objet et de même pour les capteurs mais bon…

Je précise que je suis la dessus depuis 2 jours donc croyez moi je suis certes pas très doué mais j’ai réfléchit avant de poster (bon pas assez :smiley: )

Merci d’avance pour votre aide.

Cordialement.

Condition: toujours
Action: faire = +1*TimeDelta() à la variable “SelectionnerEnnemis”

Conditions:

-Prendre un ennemi au hasard
-La variable “selection” de l’objet ennemi est égal à 0
-Le chronomètre “selection” est supérieur à une seconde

Actions: Faire = “SelectionnerEnnemis” à la variable “selection” de l’objet ennemi.
-Remettre à zéro le chronomètre “selection”

Cela permet de donner une valeur comprise entre 1 et 7 à la variable de chacun de tes ennemis. Cela dure 7 secondes mais tu peux modifier le chronomètre ainsi que la rapidité à laquelle augmente la variable “SelectionnerEnnemis” pour que ce soit plus rapide.

Ensuite on fait la même chose mais pour les capteurs:

Conditions:

-Prendre un capteur au hasard
-La variable “selection” de l’objet capteur est égal à 0
-Le chronomètre “selection2” est supérieur à une seconde

Actions: Faire = “SelectionnerEnnemis” à la variable “selection” de l’objet capteur.
-Remettre à zéro le chronomètre “Selectionner2”

Maintenant que l’on a affecté une valeur entre 1 et 7 aux capteurs et aux ennemis, il reste plus qu’à diriger chaque ennemi vers le capteur correspondant.

Par exemple:

Conditions:

Prendre un ennemi au hasard
La variable “SelectionnerEnnemis” de l’objet ennemi = 1
Prendre un capteur au hasard
La variable “SelectionnerEnnemis” de l’objet capteur = 1

Actions: Diriger Ennemi vers capteur

J’espère que j’ai bien expliqué :slight_smile: . Ps: c’est probablement faux, ayant fait ça de tête sans essayer sur Game Develop, mais ça peut te donner une idée de ce qu’il faut faire :smiley: .

Edit: J’ai essayé de le faire sur Game develop et ça marche. Je te donne un screenshot des evènements que j’ai utilisés:

A noter ikne que dans tes évènements, tu peux beaucoup les optimiser en utilisant les sous évènements plutôt que de réécrire 4 fois les mêmes conditions. (C’est plus lent et plus lourd) :slight_smile:

Oui bien sûr mais j’ai fait ça à la rache :slight_smile: .

Merci à toi ikne effectivement cela fonctionne à merveille !! :wink:

J’ai modifier avec des sous événements :slight_smile:

Cordialement.

Alors par contre je dois mal m’y prendre avec la fonction “TimeDelta” en effet lorsque je j’utilise celle ci avec exactement les même évènements que tu à fait (encore merci d’ailleurs :slight_smile: ) je m’aperçois que la variable augmente au lieu de 1,2,3,4… avec cette fonction c’est plutôt 0.1015,0.1016,… mais du coup le reste des évènements ne fonctionne plus.

Je comprend le but de TimeDelta mais la…

Pareil j’ai eu aussi quelques problèmes avec la fonction TimeDelta. C’est pour ça que dans l’image que j’ai donné j’utilise un chronomètre :wink: .
Sinon pour ton problème, es-tu sûr que as bien fait +1*TimeDelta() ? Pense au “+” qu’il faut mettre avant à la place du “=”. Le “1” détermine la valeur qui sera ajouté à la variable chaque seconde.

Oui, le soucis avec les chronos c’est que cela marche pas tout le temps en faite ou alors je m’y prend mal (ce qui est fort possible :smiley: ).

Bon j’ai quand même bien avancé grâce à ton idée je vais creuser un peu mais ce TimeDelta ce me tracasse :smiley: .

Bon reglant bien les chronos ça fonctionne bien.

Mais je comprend pas le timedelta si je met un évènement

Si variable alerte est = 1 —> faire +1*timedelta a la variable recherche

si la variable recherche est = 1 → avancer ennemi vers…

Le problème que j’ai c’est que “timedelta” m’affiche des nombres du genre 1.1015, 1.1016… et je préférerais des nombres avec rien après la virgule :slight_smile:

Du coups je m’en fou ça marche avec les chronos mais ça m’embête de pas comprendre…

Essaye Floor(TimeDelta()*TonNombre) pour voir.

Salut Delta merci pour ta réponse mais la formule ne passe pas

c’est bien ça Floor(TimeDelta()*1)

Essaie floor avec un f minuscule.

La formule passe mais je n’ai aucune action (la variable n’agit pas).

En même temps, 1*TimeDelta() donne un nombre très petit (car TimeDelta(), le temps depuis la dernière frame générée est très petit). Donc, en mettant floor devant, on va arrondir quelque chose comme 0.0001, donc on aura 0 (donc aucun effet).