J’ai, sur ma scène, plusieurs instances d’un même objet (blocs).
Je veux faire bouger ces blocs au passage d’un personnage.
Jusque là, ça va.
Mon problème est que tous les blocs bougent en même temps.
J’aurais voulu savoir s’il était possible de faire appel à une instance d’objet plutôt qu’à un objet.
J’ai placé une variable (num) de valeur différente sur chaque instance mais je ne sais pas comment faire pour la suite.
@victor (si tu passe par ici): Dans ton “bêta” tutoriel, tu évoques bien ces instances en précisant qu’elles sont indépedantes… Le sont-elles vraiment?
Les instances sont indépendantes, mais si tu précises pas quelle instance utiliser avec une/des condition(s), les actions s’exécuteront sur toutes les instances de l’objet.
Dans ton cas, (en simplifié) :
CONDITIONS :
Le BLOC est en collision avec Personnage
ACTIONS :
Bouger le bloc
Dans cet exemple, seul le/les blocs en collision avec le perso bougeront. Les conditions ne servent pas qu’à dire “vrai” et “faux”, mais elles définissent quels instances utiliser par les actions du même événement.
Tu peux utiliser un evenement “Pour chaque objet” ou la condition Prendre un objet au hasard. Tu peux varier aussi les deplacement en introduisant un peu de hasard avec l’expression Random.
J’ai fait mes tests avec un seul bloc (une sorte d’ascenseur) sur ma scène, et je me suis rendu compte du problème en insérant un second bloc.
Pourtant, j’avais bien pensé, qu’en testant la collision, seul le bloc “collisé” bougerait… Mais je dois me tromper quelque part.
Voici les évènements correspondant à cela :
Pour résumer le pourquoi de mes évènement:
-L’ascenseur doit monter au bout d’1s. si le personnage reste dessus.
-Le personnage est à ce moment là “collé” à l’ascenseur (c’est pour les tout-petits ).
-Quand il arrive en “haut”, il redescend au bout de 2s.
-Ainsi de suite… D’ailleurs, en passant, je suis obligé de décaler légèrement la position du bloc car sinon, il ne se place pas exactement à l’endroit choisi et ne peut plus, dans certains cas, être en collision avec mon perso… Est-ce normal?
J’ai 2 blocs, sur le 1er Num=1 et le second, Num=2 et une Variable de scène (NumAscenseur) qui récupère la valeur de Num.
Lorsqu’il y a collision avec l’un ou l’autre des blocs, NumAscenseur passe à 1 quoiqu’il arrive (je crois qu’il prend la valeur du 1er bloc placé sur la scène).
Qu’en pensez-vous?
Comment être sûr d’affecter les évènements au bloc touché?
Ah!!! Yes!!! Ca marche!
bien joué callaghan !!.. Heu, victor…
Bon j’vais continuer là dessus. Merci boucou!
Je reprends juste une autre question que j’ai posée plus haut:
Lorsque je déplace le bloc, je veux qu’il s’arrête à Y=60 (par exemple). J’ai remarqué (via le débugger) que celui-ci ne s’arrête pas forcément exactement à la hauteur voulue (mais plutôt entre 59.9 et 59.99). Est-ce normal?
J’ai essayé d’y remédier en modifiant les coordonnées après l’arrivée du bloc, mais là aussi, il ne se positionne pas exactement à la hauteur voulue.
Pour le moment (afin que les collisions puissent se faire), je décale de 2-3 points la position mais cela me semble étrange…
Une idée?
En fait, c’est un peu gênant, je m’explique :
Chaque bloc “plate-forme” fait 40x20, le bloc ascenseur fait la même taille.
Lorsque celui-ci est en position basse, il se superpose aux éléments du décor (de la plate-forme"). Ainsi, s’il se retrouve même très légèrement sous sa position (160.45 au lieu de 160), la collision ne fonctionne plus.