• [^] # Re: Chapeau

    Posté par (site web personnel) . En réponse au journal Code source d'X-Blaster Dominator disponible. Évalué à 1. Dernière modification le 03 février 2014 à 18:45.

    Merci, ça fait plutôt plaisir à lire. Pour la grammaire, c'est surtout que je me relis par forcément après avoir écrit, mais c'est vrai qu'un petit bouquin ne me ferait pas du mal.

    Oui, j'ai éprouvé plus de plaisir à développer sous Linux que Windows. Au départ, je voulais faire un jeu exclusivement pour Linux, mais trop d'amis voulait l'essayer sous Windows alors donc fallait rajouter un peu de code. Le problème avec Windows, c'est qu'il faut passer du temps à se documenter sur certaines fonctions qui ne sont pas tout le temps les mêmes entre Windows XP / 7 / 8.

    Par exemple, pour désactiver temporairement l'écran de veille, j'ai dû écrire ce code :

    #if defined _WIN32
     bool screensaver = false;
     if (!SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, NULL, SPIF_UPDATEINIFILE)) {
     SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, NULL, SPIF_UPDATEINIFILE);
     screensaver = true;
     } 
    #endif
    #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
     SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);
    #endif

    Alors que pour Linux il suffit simplement de créer cette fonction qui remet le compte à rebours à zéro :

    #ifdef __linux 
     void GamePadManager::fakeKey() {
     if (fakeKeyClock.getElapsedTime().asMilliseconds() - fakeKeyLastTime > 5000) {
     system("xscreensaver-command -deactivate > /dev/null");
     fakeKeyLastTime = fakeKeyClock.getElapsedTime().asMilliseconds();
     }
     }
    #endif