[Résolu] Mouvement de copies d'ennemis

Bonjour à tous !

Pour m’entraîner je pars du petit jeu de plateform fourni avec Game Develop. J’ai rajouté un ennemi (le Slime rose) et fait en sorte qu’il fasse demi tour quand il rencontre un élément de PF.

Quand j’ai voulu rajouter un ennemi de type Slime Rose, en le copiant, ça n’a plus fonctionné comme je le souhaitais. En effet, le premier Slime fait demi tour, en même temps que le deuxième, si l’un ou l’autre rencontre une PF.

N’y a t’il pas un moyen pour que les copies d’ennemis ai tous un comportement indépendant, en respectant les même conditions (“si tu rencontres un mur, fait demi tour”) que les autres Slime.

Ou dois-je creer autant de bout de code que d’ennemi dans le jeu ??

Merci d’avance pour vos réponse !

Bon code, bon jeu, bonne journée :slight_smile:

Bonjour et bienvenu sur ce forum

Je pux peut-être t’aider pour ce point. Ah tu testés l’option “pour chaque objet”. Cela te permetra de le faire pour chaque sprite présent dans le jeux. Je te garantie rien, mais je pense que sa peux t’aidé.

Les expére en matière me corrigerons si besoin.

Les évènements sont appliqués de façon indépendantes aux objets.
Si ce n’est pas le cas, c’est que tu n’a pas mis de condition permettant de différencier ces objets : Affiche tes évènements pour qu’on voit.

Bonsoir et merci pour les réponses rapides !

J’avais un soucis pour que le Slime se retourne sans bugger avec la collision, d’où la création de la variable “a” … Je pense que vous comprendrez rapidement d’où provient mon erreur, mais personnellement je sèche :stuck_out_tongue:

Merci beaucoup !

Bonjour,

J’ai tenté de faire autrement pour que le Slime qui rencontre un bout de Plateforme parte dans la direction opposé, mais pas moyen, il reste bloqué dans le décor xD

Toujours le même problème du coup sur la copie d’ennemi…

Bien besoin de votre aide :slight_smile:

Merci d’avance !

Ce que tu pourrais faire, c’est mettre une variable “distance” dans l’objet SlimeRose.
Tu la décrémentes pendant le mouvement, et une fois à zéro, tu fais repartir le sprite dans l’autre sens et tu remets distance à sa valeur première (avec une autre variable de l’objet, distanceMax).
Comme ça, plus besoin de collision avec des marques invisibles. Et ça devrait résoudre ton problème de mouvement simultané avec plusieurs objets identiques.

Bonjour,

Merci pour la réponse :slight_smile:

En fait, je souhaiterai que les slimes se comportent “intelligemment” :

  • Au lancement de la scène, les Slimes avancent
  • Si un Slime rencontre un mur (Plateform), il part dans la direction opposée

Le problème que j’ai, c’est que des qu’un slime rencontre un mur, il fait demi tour, mais du coup tous les autres slimes font demi tour aussi …

La distance avec le slime et une plateforme peut etre variable, en fonction de la position de départ du slime, du coup, mettre un compteur ne réglera pas mon problème.

A moins que je n’ai pas saisi ce que tu voulais dire :wink:

Fais en sorte que la variable a soit une variable de l’objet slime, et non une variable de la scène. Ça devrait mieux marcher.

Ca marche :slight_smile: !!!

Moi et mes slimes, on vous remercie !

Slimes.jpg

La solution était effectivement d’utiliser les variables d’objet et non de scene.
J’ai donc créé la variable “a” pour gérer le retournement et la variable “SlimeSpeed” pour gérer la vitesse du slime.

Trés efficace :wink:

Voici le code utilisé :

Encore merci, et à trés bientôt :stuck_out_tongue:

Perso, j’aurais fait plus simple :

Soit des objets Slime contenant :

  • une variable Distance, initialisée à 0
  • une variable DistanceMax, initialisée à 50
  • une variable Tourne, initialisée à -1

Si nombre d’objets Slime > 0
– faire -1 à la variable d’objet Distance
---- si la variable Distance de l’objet Slime <=0
-----------faire Slime.Variable(DistanceMax) à la variable Distance
---------- faire * -1 à la variable Tourne de l’objet Slime
– appliquer une force de xx*Slime.Variable(Tourne) pixels à l’objet Slime

On s’en fiche que le slime se coince contre une plateforme. L’important, c’est qu’il tourne tout seul au bout d’un moment.
A toi de le faire apparaitre au bon endroit pour qu’il parcourt la bonne distance.

Tu peux alors créer plusieurs slimes, chacun avec une DistanceMax différente, afin de les faire tourner à des moments différents, selon l’espace que tu veux leur faire patrouiller.