Je crée un jeu de bateau d'attaque en C++ et j'ai un problème avec mon bateau en suivant la souris sur l'écran. Mon plan est de faire en sorte que le bateau suive la souris plus comme un bateau (des rotations lentes, au lieu d'être instantané, tout en prenant environ 4 secondes pour faire 360 tours) et pour la plupart, il fait ce qu'il devrait. Le bug survient lorsque la souris est sur le côté gauche de l'écran (dès que ma souris croise l'axe -x), lorsque le bateau suit la souris, le bateau tourne dans la mauvaise direction et fait un 360, au lieu de suivre la souris.Rotation d'une animation de bateau en C++
C'est le code que j'utilise pour faire tourner mon bateau.
angle = atan2(delta_y, delta_x) * 180.0/PI;
//Rotate the boat towards the mouse and
//make the boat turn more realistically
if (angle - rotate > 0) {
rotate += 1.0f; // turns left
} else if (angle - rotate < 0) {
rotate -= 1.0f; // turns right
}
if (angle - rotate >= 360.0f) {
rotate = 0.0f;
}`