Flèches droites peuvent changer d'angle #7

Merged
MaximilienBB merged 8 commits from origin/feature/StraightArrowChangesAngle into main 2025-05-30 23:42:35 +00:00
Showing only changes of commit 7904619816 - Show all commits

View File

@ -76,7 +76,7 @@ public class Projectile : MonoBehaviour
}
float x = _speedTime;
float y = (_angle*-Mathf.Pow(x, 2) + _destinationX * x);
float y = x >= 0 ? (_angle*-Mathf.Pow(x, 2) + _destinationX * x) : - (_angle * -Mathf.Pow(x, 2) + _destinationX * x);
MaximilienBB marked this conversation as resolved Outdated

Remettre le point-virgule

Remettre le point-virgule
transform.position = new Vector2(_initialX + x*_angle, _initialY + y);
@ -105,18 +105,22 @@ public class Projectile : MonoBehaviour
//Debug.Log("Angle X: " + angleX);
if(diffY >= 0.1 || diffY <= -0.1)
if (diffY >= 0.1 || diffY <= -0.1)
{
//TODO: L'angle fonctionne mieux, mais il y a toujours des problemes avec les angles pret de X
//ou ils sont beaucoup trop verticaux.
//L'angle a l'air de fonctionner lorsqu'il tire en avant (X positif), mais on dirait qu'il y a un probleme
//lorsque X est negatif.
//TODO: Recalculer la vitesse pour qu'elle fonctionne lorsque le projectile est tire en arriere.
MaximilienBB marked this conversation as resolved Outdated

Peut-être ajouter des commentaires détaillant ce que font les IF, pour faciliter la maintenance plus tard. Que ce soit ce que les IF font, ou bien ce que les conditions signifient

Peut-être ajouter des commentaires détaillant ce que font les IF, pour faciliter la maintenance plus tard. Que ce soit ce que les IF font, ou bien ce que les conditions signifient
float lerpStepS;
if(angleX > 0.235) lerpStepS = Mathf.Rad2Deg * Mathf.Atan(angleX / angleY);
if (angleX > 0.23) lerpStepS = Mathf.Rad2Deg * Mathf.Atan(angleX / angleY);
else if (angleX >= 0) lerpStepS = Mathf.Rad2Deg * Mathf.Atan(angleY / angleX);
else lerpStepS = -Mathf.Rad2Deg * Mathf.Atan(angleY / angleX);
else {
lerpStepS = -Mathf.Rad2Deg * Mathf.Atan(angleY / angleX);
}
float angleS = Mathf.Lerp(lerpStepS, 0, 0);
transform.eulerAngles = new Vector3(0, 0, angleS);