Besoin d'un coup de pouce sur Construct 2 ? C'est par ici !
Avatar de l’utilisateur
par JinRedfox
#26843 Bonjour,
Avant tout je tiens à préciser que j'ai cherché pendant plusieurs heures sur le forum et que je n'ai pas trouvé (après je suis peut-être passé à côté --') alors voilà je poste ici mon petit problème.

Comme il est dit dans ma présentation, je suis sur un jeu de plateforme/tir, donc on voit mon personnage sur son côté gauche et droit. J'arrive à faire en sorte que son arme et sa main suivent mon curseur, que le personnage se retourne quand j'appuie sur la touche qui va dans l'autre sens, jusque là pas de défis si je puis dire.

Mais voilà, j'aimerais éviter que mon personnage puisse tirer dans son dos, et c'est là que je bute !
J'ai deux solutions, soit bloqué son bras/arme sur un certain angle pour pas qu'elle puisse passer de l'autre côté du personnage, soit le personnage ne se retourne pas en fonction de la touche pressé, mais en fonction du placement du curseur.

Je ne sais pas laquelle serait la mieux, et je ne sais encore moins les mettre en place. Si quelqu'un a la solution je serais heureux de la connaître.
Avatar de l’utilisateur
par Palourde
#26860 Salut,

Savoir quelle solution est la mieux entre les deux que tu proposes reste dans tous les cas un choix qui t'incombe, par contre tu peux très facilement limiter l'angle que prendra le bras de ton personnage et partir de là pour avancer sur ton projet.

Concrètement, il faut passer par l'expression "clamp(x,a,b)"

Par exemple, mettons que tu veuille modifier l'angle d'un objet tout en t'assurant qu'il reste toujours entre 0° et 90°. Tu dois créer un événement de ce type :

Every tick => Set Objet.Angle to => clamp(self.Angle, 0, 90)

De cette manière l'objet ne pourra pas aller en dessous de 0° ni au dessus de 90°, même si un autre événement le lui demande en amont. Pour que cela fonctionne il faut toutefois bien veiller à ce que cet événement intervienne en dernier, par ce qu'il ne pourra pas fonctionner si un autre événement, placés plus bas que lui dans l'event sheet, vient également impacter l'angle de ton objet.

Pour ton projet il faut donc d'abord lier l'angle du bras à la position de ton curseur et seulement ensuite utiliser l'expression "clamp(...)".