Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - omegadil

Pages: [1]
1
Général / Re: sfml avancer en fonction de la rotation
« le: Août 30, 2022, 08:21:55 pm »
sujet résolu !

les fonctions cosinus et sinus demandent des radians et non des degrés, donc j'ai utilisé la fonction permettant de calculer un angle (atan2) qui renvoie en radian.
//recupère l'abcisse de la position de la souris sur la fenêtre moins l'abscisse actuelle du sprite
float x = m_fenetre->mapPixelToCoords(sf::Mouse::getPosition(*m_fenetre)).x - getPosition().x;
//recupère l'ordonnée de la position de la souris sur la fenêtre moins l'ordonnée actuelle du sprite
float y = m_fenetre->mapPixelToCoords(sf::Mouse::getPosition(*m_fenetre)).y - getPosition().y;
 
float rotationActuelle{ getRotation() };
double angle{};
 
if (rotationActuelle != RotLast)
{
        angle = atan2f(y, x);
        RotLast = rotationActuelle;
        CosLast = cos(angle);
        SinLast = sin(angle);
}
 
setRotation(angle * 180 / PI);
 
move(CosLast, SinLast);

cordialement

2
Général / sfml avancer en fonction de la rotation
« le: Août 23, 2022, 02:30:22 pm »
Bonjour, je cherche à faire avancer en continue un sprite en fonction de sa rotation. Je tiens à préciser que sa rotation change tout le temps et que la fonction s'occupant de ça marche trés bien.

Voici la ligne que j'ai essayé (qui est dans la boucle d'sfml)
move(cos(this->getRotation()), sin(this->getRotation()));
la plupart du temps le sprite avance bien mais dés que sa rotation est environ égal à 0 (donc le sprite est orienté vers le haut de l'écran), il s'arrête d'avancer et se met à reculer. j'ajoute aussi que quand le sprite avance en meme temps qu'il tourne, il se met à trembler (je pense que c'est parce qu'il recule et avance en meme temps)

merci de vos réponses et de votre aide ^^

3
Général / Re: SFML s'orienter vers un point ou sprite ou souris
« le: Juillet 23, 2021, 10:26:00 am »
ça marche :) !!! je n'arrivais pas à le faire tourner progressivement avec setRotation donc je suis retourné à rotate et j'ai trouvé une solution :

   Vector2f spritePos = getPosition();//je recupere la position du sprite
   Vector2i mousePos = Mouse::getPosition();//je recupere la position de la souris
   float x = mousePos.x - spritePos.x;//je calcule la distance en x
   float y = mousePos.y - spritePos.y;//je calcule la distance en y
   
   float angle_rad = atan2(y, x);//calcule de l'angle
   float angle_deg = angle_rad * 180 / 3.14159265358979323846;//convertir en degres
   double tourner = (angle_deg - getRotation()) / 10;//diviser par 10 pour mieux tourner progressivement
   for (int c(0); c < 10; c++)
   {
      rotate(tourner);//tourner
   }
ça marcher aussi sans le "for" et le "/10" mais quelque fois il tourner d'un coup donc je divise par 10 pour qu'il tourne mieux.
merci G. Sujet Resolu (d'ailleur comment je fais pour le mettre en resolu)

4
Général / Re: SFML s'orienter vers un point ou sprite ou souris
« le: Juillet 22, 2021, 11:43:39 am »
se tourner vers

5
Général / Re: SFML s'orienter vers un point ou sprite ou souris
« le: Juillet 22, 2021, 09:03:45 am »
j'ai fait ce code le seul probleme est que le sprite tourne sur lui meme (l'origine est bien dans son centre)
   
   Vector2f spritePos = getPosition();//je recupere la position du sprite
   Vector2i mousePos = Mouse::getPosition();//je recupere la position de la souris
   float x = mousePos.x - spritePos.x;//je calcule la distance en x
   float y = mousePos.y - spritePos.y;//je calcule la distance en y
   
   int angle_rad = atan2(y, x);//calcule de l'angle
   int angle_deg = angle_rad * 180 / 3.14159265358979323846;//convertir en degres
   rotate(angle_deg);//tourner
   //mais mon sprite tourne sur lui meme

voila c'est le contenu d'une fonction qui est appelé dans la boucle while(window.isOpen). Je voudrais que mon sprite s'oriente en temps réel vers ma souris

6
Général / SFML s'orienter vers un point ou sprite ou souris
« le: Juillet 21, 2021, 08:33:06 am »
bonjour/bonsoir

je suis novice en c++ et je cherche à orienter un Sprite de sfml vers la souris/un point. je n'ai pas trouver de fonction du genre : sprite1.orienterVersUnSprite(sprite2) ou autre sur google alors je suppose qu'il faudra que je l'a creer

merci de votre aide

Pages: [1]