Probléme de direction de tir

Bonjour,

Je demande votre aide car j’ai un petit soucis au niveau de mets tir (mon perso tir que sur la droite)

Je voudrais que mais tir aille dans la direction de mon perso

exemple : je click sur Q mon perso regarde a gauche donc j’appuie sur click gauche pour tiré il tir à gauche

Merci si vous avez steam n’hésiter pas a me contacter medou ou mikha

Salut, A l’endroit ou tu créer ton tir tu lui ajoute une force par angle non ?
Donc il suffit de mettre la direction de ton tir dans l’angle de cette force égale à celle de ton perso (je me suis bien expliqué ? lol)
en gros dans l’encadré angle tu met quelque chose comme ça “perso.Direction()”

j’ai mis Perso.Direction()° et 400 de longueur pixel

J’ai crée la balle à la position Perso.PointX(tir) et Perso.PointY(tir)

et mon perso tire toujours au même endroit ^^

Ton objet personnage se nomme bien Perso ?
Perso.Direction()° enléve le ° ?
Et tu es sur que Perso.PointX(tir) et Perso.PointY(tir) marche ?
Pour ma part c’est plutôt Perso.X(tir) Perso.Y(tir) (à condition d’avoir créer un point “tir” dans le sprite).

Bonjour à tous,

Je suis en train de bricoler avec le prog du tutoriel (Tank) et celui du Space marine, et je tombe sur le même problème.
Le Bullet part bien de mon Canon, mais part sur la droite malgré que l’action “Personnage.Direction()” soit validé.
Les seules différences que je vois entre entre le Tank du tuto et le Space marine de mon bricolage sont que a) le Space marine est géré en 8 directions et b) il se déplace avec les touches fléchées.

Est-il possible d’avoir une impression d’écran des événements liés au problème ?

merci pour vos réponse voici le screen hpics.li/6f5e93b

Pour être franc je sais pas pourquoi ça fonctionne par correctement, mikha tu peux essayer en mettant une variable que tu appelleras coté et tu fais deux fois l’événement tir avec chacun une condition sur la variable et selon le côté tu met dans la longueur de pixel +400 et l’autre -400.
Et tu change la variable coté dans les événement quand tu appuie sur gauche et droite.

Sideous je sais pas pourquoi ça marche pas pour moi ça fonctionne correctement même avec les flèches…

(En attendant une meilleur réponse xD)

oui justement j’ai voulu faire ça après mais comme une huitre j’ai mis 400 au lieu de-400 au tir2

Voici l’imprécran : hpics.li/a224708

J’ai vérifié que j ne faisais pas une erreur dans l’écriture en utilisant l’interface pour Personnage.Direction().
Ce qui est étrange, c’est que pour chaque direction, le tir se fait sous un angle différent et constant quelle que soit la position du Personnage…

Je vois à pars que dans mon test (qui fonctionne) je n’ai pas utilisé le type: 8 direction depuis l’éditeur de l’objet mais directement dans mes évenements, je ne vois pas grand chose de différent qui soit important dans ton problémes. Donc je ne vois que ça.

As tu bien pensé à activer le mode 8 direction sur ta balle ??

Sinon voici l’image de mon test si tu vois autre chose (j’ai aussi mis l’amortissement à 1 sur la force d’angle de mon tir)

Non, je n’avais pas pensé au 8 directions pour la Balle… malheureusement, ce n’est pas ça.
Vu l’angle constant des tirs pour chaque direction du Personnage, je me dis que c’est un problème d’incompatibilité qui vient de l’Angle du Personnage.

J’ai essayé ta méthode : force d’angle pour le déplacement du Personnage, mais le problème reste exactement le même !
C’est à n’y rien comprendre :cry:

Je vais essayer en liant la direction de Personnage et le déplacement de Balle avec une variable, mais ça me semble un peu lourd…

Tu as essayé en enlevant le type 8 direction et mettant rotation automatique ?
Juste pour voir si ce n’est pas ça le problème ?

Ps: je viens de tester c’est le mode 8 direction qui est le problème.
Dans la force d’angle de ta balle met ça Personnage.Direction()*45

Oui je l’ai fait et le problème disparaît en rotation automatique, c’est ce qui me fait penser à une incompatibilité entre le système 8 directions et la commande “Personnage.Direction()”.

Plutôt qu’une variable, j’ai utilisé un objet invisible “Visee” en rotation automatique. Pour chaque direction de Personnage, Visee prend l’angle correspondant. Balle prend alors une force correspondante à “Visee.Direction()” à l’appui de Left.

C’est un peu lourd, mais c’est tout ce que j’ai trouvé pour contourner le problème…
Des suggestions ?

Dans la force d’angle de ta balle met ça “Personnage.Direction()*45”.

En type 8 direction pour ton personnage tu as 0 1 2 3 4 5 6 7 8 soit 0 45 90 135 180 225 270 315 360

Il suffit donc de multiplier par 45 le “numéro” de la direction de ton personnage pour avoir l’angle.