Comment augmenter la vitesse d’un sprite sans finir en spirale au lieu de tourner en rond

Hé, j’ai donc une classe de sprite, et je la fais tourner à 360 degrés par seconde, tout en augmentant la vitesse en même temps. Cependant, je finis en spirale et ne rest pas sur le cercle original formé par la rotation continue de 360 ​​degrés par seconde.

Comment puis-je réparer cela? Le sprite doit aller plus vite et restr sur le même chemin.

voici le code:

box.Accelerate(10*Window.GetFrameTime()); box.Turn(360.0*Window.GetFrameTime()); 

    Si vous voulez faire un sprite en cercle, mettez cela dans le code. Par exemple,

     float time = Window.GetFrameTime(); angle += speed * (time - lastTime); lastTime = time; float x = sinf(angle), y = cosf(angle); box.SetPos(50*x + center.x, 50*y + center.y); box.Turn(angle + QUARTER_TURN); 

    Si votre sprite accélère (bouge plus rapidement chaque seconde) mais tourne toujours à une vitesse constante de 360 ​​degrés par seconde, il se déplacera toujours dans une spirale extérieure.

    Pense-y de cette façon:

    Si votre image-object se déplace autour d’un cercle de rayon 1 (c.-à-d. Un cercle d’unité), tourne à une vitesse de 360 ​​degrés par seconde et se déplace à une vitesse de 2 * unités de pi (soit la circonférence de votre cercle) par seconde, se déplaceront tout autour du cercle toutes les secondes.

    Si vous augmentez la vitesse à laquelle le sprite se déplace, mais qu’il rest sur le même cercle, le tour du cercle sera plus rapide qu’une fois par seconde. S’il doit encore faire le tour du cercle une fois par seconde, le cercle doit s’agrandir.

    Pour maintenir votre sprite sur le même cercle, il doit également augmenter la vitesse à laquelle il tourne proportionnellement à la vitesse à laquelle il accélère.