@@ -167,17 +167,17 @@ void SabaccVue::boucleThread() {
167167
168168 m_fenetre.create (vm, " Sabacc de Kessel par GrillePainVert" , sf::Style::Close | sf::Style::Titlebar, sf::State::Fullscreen, settings);
169169 m_fenetre.setVerticalSyncEnabled (true );
170- m_fenetre.setMinimumSize ( sf::Vector2u ( 1400 , 800 ));
170+ m_fenetre.setFramerateLimit ( 60 );
171171 chargeElements ();
172172
173173 while (m_fenetre.isOpen () && m_keepRunning) {
174174 traiteEvenements ();
175175 // update(); // If needed for animations or GUI state not tied to game state
176176 affiche ();
177- Sleep ( 15 );
177+ // ici pas besoin de delai Sleep car j'ai fixé la MaxFrameRate à 60 en créant la fenetre
178178 }
179179
180- // unload assets
180+ // unload assets pas nécessaire ici
181181
182182 // close window
183183 m_fenetre.close ();
@@ -202,22 +202,13 @@ void SabaccVue::traiteEvenements() {
202202 // Mouse Button Pressed
203203 if (const auto * mouseButtonReleased = event->getIf <sf::Event::MouseButtonReleased>()) {
204204 if (mouseButtonReleased->button == sf::Mouse::Button::Left) {
205- // todo test
206- // if (m_jeuSabacc.m_jeuTermine || m_jeuSabacc.m_joueurs[m_jeuSabacc.m_positionJActuel].m_type == TYPE_JOUEUR::TJ_HUMAIN || !m_jeuSabacc.m_joueurs[Position::S].m_enJeu) {
207- // if (m_jeuSabacc.m_joueurs[m_jeuSabacc.m_positionJActuel].m_type == TYPE_JOUEUR::TJ_HUMAIN) {
208- traiteClicJoueur (mouseButtonReleased->position );
209- // }
205+ traiteClicJoueur (mouseButtonReleased->position );
210206 }
211207 }
212- // Press Enter Event
213- // if (const auto* keyPressed = event->getIf<sf::Event::KeyPressed>()) {
214- // if (keyPressed->scancode == sf::Keyboard::Scan::Enter) {
215- // // This logic needs to be more nuanced.
216- // // Only advance if waiting for this specific input.
217- // // For now, let's assume AI turns are fast.
218- // }
219- // }
220- // catch the resize events
208+
209+ // C'est important car le framework SFML affiche une View dont la taille est indépendante de la fenêtre
210+ // Ca peut être très utile dans pas mal de cas, mais ici je veux que ma View ait la même résolution que la fenêtre
211+ // A chaque resize la View doit être remplacée
221212 if (const auto * resizedEvent = event->getIf <sf::Event::Resized>())
222213 {
223214 // update the view to the new size of the window
@@ -543,7 +534,7 @@ void SabaccVue::afficheActionsCliquables(const sf::FloatRect& area) {
543534
544535 for (const auto & action : m_actionsAChoisir) {
545536
546- ActionCliquable cad (m_policeTexte); // Assuming constructor takes font, or setFont is called
537+ BoutonCliquable cad (m_policeTexte); // Assuming constructor takes font, or setFont is called
547538 cad.gameAction = action;
548539
549540 std::ostringstream actionOss;
@@ -628,7 +619,7 @@ void SabaccVue::afficheActionsCliquables(const sf::FloatRect& area) {
628619 // Nouveau Jeu
629620 currentY = area.position .y + area.size .y - buttonHeight;
630621
631- ActionCliquable actionNouveauJeu (m_policeTexte);
622+ BoutonCliquable actionNouveauJeu (m_policeTexte);
632623 actionNouveauJeu.ViewAction = VA_NOUVELLE_PARTIE;
633624 std::string actionStr (" Nouvelle Partie" );
634625
@@ -654,7 +645,7 @@ void SabaccVue::afficheActionsCliquables(const sf::FloatRect& area) {
654645 currentY -= 1 .0f * buttonHeight + 1 .0f * padding;
655646
656647 // afficher-cacher cartes
657- ActionCliquable actionAfficherCacher (m_policeTexte);
648+ BoutonCliquable actionAfficherCacher (m_policeTexte);
658649 actionAfficherCacher.ViewAction = VA_AFFICHER_CACHER_CARTES;
659650
660651 actionStr;
@@ -684,7 +675,7 @@ void SabaccVue::afficheActionsCliquables(const sf::FloatRect& area) {
684675 m_actionsCliquables.push_back (actionAfficherCacher);
685676
686677 // changer la vitesse
687- ActionCliquable actionVitesse (m_policeTexte);
678+ BoutonCliquable actionVitesse (m_policeTexte);
688679 actionVitesse.ViewAction = VA_CHANGE_VITESSE;
689680
690681 actionStr;
@@ -714,7 +705,7 @@ void SabaccVue::afficheActionsCliquables(const sf::FloatRect& area) {
714705 m_actionsCliquables.push_back (actionVitesse);
715706
716707 // Ferme le jeu
717- ActionCliquable actionFerme (m_policeTexte);
708+ BoutonCliquable actionFerme (m_policeTexte);
718709 actionFerme.ViewAction = VA_FERME;
719710
720711 actionStr=" X" ;
@@ -1066,8 +1057,8 @@ void SabaccVue::traiteClicJoueur(sf::Vector2i mousePos) {
10661057 if (cad.bounds .contains (worldPos)) {
10671058 joueSonBouton ();
10681059 Action actionJeu = cad.gameAction ;
1069- VueAction actionVue = cad.ViewAction ;
1070- if (actionVue == VueAction ::VA_AFFICHER_CACHER_CARTES) {
1060+ ActionBouton actionVue = cad.ViewAction ;
1061+ if (actionVue == ActionBouton ::VA_AFFICHER_CACHER_CARTES) {
10711062 if (!m_afficheCartes && MessageBox (m_fenetre.getNativeHandle (), L" Attention: Afficher les cartes efface les scores. Voulez-vous continuer?" , L" Afficher toutes les cartes" , MB_YESNO) == IDYES)
10721063 {
10731064 m_afficheCartes = true ;
@@ -1079,7 +1070,7 @@ void SabaccVue::traiteClicJoueur(sf::Vector2i mousePos) {
10791070 }
10801071 return ;
10811072 }
1082- else if (actionVue == VueAction ::VA_NOUVELLE_PARTIE) {
1073+ else if (actionVue == ActionBouton ::VA_NOUVELLE_PARTIE) {
10831074 // appelle onGameRestart des listeners
10841075
10851076 if (m_jeuSabacc.m_jeuTermine || MessageBox (m_fenetre.getNativeHandle (), L" Voulez-vous vraiment recommencer la partie?" , L" Nouvelle Partie" , MB_YESNO) == IDYES) {
@@ -1094,7 +1085,7 @@ void SabaccVue::traiteClicJoueur(sf::Vector2i mousePos) {
10941085 }
10951086 return ;
10961087 }
1097- else if (actionVue == VueAction ::VA_CHANGE_VITESSE) {
1088+ else if (actionVue == ActionBouton ::VA_CHANGE_VITESSE) {
10981089 m_rapide = !m_rapide;
10991090 if (m_rapide) {
11001091 m_carteAnimDuree = CARTE_ANIM_DUREE_RAPIDE;
@@ -1106,7 +1097,7 @@ void SabaccVue::traiteClicJoueur(sf::Vector2i mousePos) {
11061097 }
11071098 return ;
11081099 }
1109- else if (actionVue ==VueAction ::VA_FERME) {
1100+ else if (actionVue ==ActionBouton ::VA_FERME) {
11101101 if (MessageBox (m_fenetre.getNativeHandle (), L" Voulez-vous vraiment quitter?" , L" Quitter le Jeu" , MB_YESNO) == IDYES)
11111102 m_pListener->surFermeFenetre ();
11121103 return ;
@@ -1120,7 +1111,7 @@ void SabaccVue::traiteClicJoueur(sf::Vector2i mousePos) {
11201111}
11211112
11221113void SabaccVue::ajouteLogMessage (const std::string& message) {
1123- if (m_texteMessages.size () >= MAX_MESSAGES) {
1114+ while (m_texteMessages.size () >= MAX_MESSAGES) {
11241115 m_texteMessages.erase (m_texteMessages.begin ());
11251116 }
11261117 sf::Text text (m_policeTexte);
@@ -1398,10 +1389,7 @@ void SabaccVue::affiche() {
13981389
13991390 afficheCentreTable (boardArea);
14001391
1401- // todo test
1402- // if (m_jeuSabacc.m_jeuTermine || m_jeuSabacc.m_joueurs[m_jeuSabacc.m_positionJActuel].m_type == TYPE_JOUEUR::TJ_HUMAIN || !m_jeuSabacc.m_joueurs[Position::S].m_enJeu) {
1403- afficheActionsCliquables (actionArea);
1404- // }
1392+ afficheActionsCliquables (actionArea);
14051393
14061394 afficheMessages (zoneBoiteMessages);
14071395
0 commit comments