Bonjour à tous
Je réalise un méthode dans ma classe Caméra qui me permet de faire trembler la caméra pendant un certains temps (ici uiLength) avec un minimum et un maximum pour les déplacements (ici fMin et fMax) et enfin une vitesse de tremblement (uiSpeed)
J'ai dit dans ma boucle de jeu que si l'utilisateur appui sur A alors la caméra tremble pendant le temps qu'il à spécifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void CCamera::Shake(uint uiSpeed, uint uiLength, float fMin, float fMax) { sf::Clock Clock; float tempsPrecedent = 0.0f, tempsActuel = 0.0f; tempsActuel = Clock.GetElapsedTime(); Clock.Reset(); if (tempsActuel - tempsPrecedent > uiLength) { m_View.Left = m_Coor.m_x; m_View.Top = m_Coor.m_y; tempsPrecedent = tempsActuel; // Le temps actuel devient le temps précédent } m_View.Left = Random(fMax, fMin); m_View.Top = Random(fMax, fMin); }
Seulement ça ne marche pas comme je le voudrais, en effet je suis obligé de rester appuyé sur A pour que la caméra tremble.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 case sf::Key::A: CCamera::GetInstance()->Shake(2000, 300, 20, 50); break;
Je ne maîtrise pas très bien le temps donc si vous pouviez me donner un pti coup de pouce
Merci d'avance
PS : j'ai pas encore regardé pour la vitesse de tremblement
Partager