IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

tutoriel sur sfml


Sujet :

SFML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    390
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 390
    Billets dans le blog
    16
    Par défaut tutoriel sur sfml
    Bonjour,

    j'ai trouvé un tuto de sfml:
    https://fr.sfml-dev.org/tutorials/2....-events-fr.php

    L'auteur y a mit du code qui ne compile pas:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <iostream>
    #include <SFML/Window.hpp>
     
    int main(){
      sf::Window window(sf::VideoMode(200,200),"exemple-event",sf::Style::Default);
      sf::Event event;
      while(window.isOpen())
        while(window.pollEvent(event))
          switch(event.type){
          case sf::Event::Closed:
    	window.close();
          case sf::Event::KeyPressed:
    	if (event.key.scancode == sf::Keyboard::Scan::Escape){
    	  std::cout << "the escape key was pressed" << std::endl;
    	  std::cout << "scancode: " << event.key.scancode << std::endl;
    	  std::cout << "code: " << event.key.code << std::endl;
    	  std::cout << "control: " << event.key.control << std::endl;
    	  std::cout << "alt: " << event.key.alt << std::endl;
    	  std::cout << "shift: " << event.key.shift << std::endl;
    	  std::cout << "system: " << event.key.system << std::endl;
    	  std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
    	  std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
    	  std::cout << "delocalize: " << sf::Keyboard::delocalize(event.key.code) << std::endl;
    	  break;
    	}
        }
      return 0;
    }
    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
    19
    20
    21
    22
    23
    24
    25
    26
    $ g++ main.cpp -lsfml-window
    main.cpp: In function ‘int main()’:
    main.cpp:13:23: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       13 |         if (event.key.scancode == sf::Keyboard::Scan::Escape){
          |                       ^~~~~~~~
    main.cpp:13:49: error: ‘sf::Keyboard::Scan’ has not been declared
       13 |         if (event.key.scancode == sf::Keyboard::Scan::Escape){
          |                                                 ^~~~
    main.cpp:15:50: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       15 |           std::cout << "scancode: " << event.key.scancode << std::endl;
          |                                                  ^~~~~~~~
    main.cpp:21:57: error: ‘getDescription’ is not a member of ‘sf::Keyboard’
       21 |           std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
          |                                                         ^~~~~~~~~~~~~~
    main.cpp:21:82: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       21 |           std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
          |                                                                                  ^~~~~~~~
    main.cpp:22:54: error: ‘localize’ is not a member of ‘sf::Keyboard’
       22 |           std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
          |                                                      ^~~~~~~~
    main.cpp:22:73: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       22 |           std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
          |                                                                         ^~~~~~~~
    main.cpp:23:56: error: ‘delocalize’ is not a member of ‘sf::Keyboard’
       23 |           std::cout << "delocalize: " << sf::Keyboard::delocalize(event.key.code) << std::endl;
          |                                                        ^~~~~~~~~~
    une idée?

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    C'est parce que tu n'as pas la même version que lui.

    Au passage, je t'invite à regarder du coté du "gamedev framework" (le github), qui est un remake de la sfml avec plus de fonctionnalités. L'auteur estimait que les mainteneurs de la sfml sont trop rétrograde (notamment sur le C++ moderne).

  3. #3
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    390
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 390
    Billets dans le blog
    16
    Par défaut
    Merci pour la réponse

    Je vais voir ça.

  4. #4
    Membre Expert
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 95
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 667
    Par défaut
    Salut,

    Citation Envoyé par ternel Voir le message
    C'est parce que tu n'as pas la même version que lui.
    Ou qu'il manque un entête, peut-être #include <SFML/Window/Event.hpp>

  5. #5
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    390
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 390
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par kaitlyn Voir le message
    Ou qu'il manque un entête, peut-être #include <SFML/Window/Event.hpp>
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include <iostream>
    #include <SFML/Window.hpp>
    #include <SFML/Window/Event.hpp>
     
    int main(){
      sf::Window window(sf::VideoMode(200,200),"exemple-event",sf::Style::Default);
      sf::Event event;
      while(window.isOpen())
        while(window.pollEvent(event))
          switch(event.type){
          case sf::Event::Closed:
    	window.close();
          case sf::Event::KeyPressed:
    	if (event.key.scancode == sf::Keyboard::Scan::Escape){
    	  std::cout << "the escape key was pressed" << std::endl;
    	  std::cout << "scancode: " << event.key.scancode << std::endl;
    	  std::cout << "code: " << event.key.code << std::endl;
    	  std::cout << "control: " << event.key.control << std::endl;
    	  std::cout << "alt: " << event.key.alt << std::endl;
    	  std::cout << "shift: " << event.key.shift << std::endl;
    	  std::cout << "system: " << event.key.system << std::endl;
    	  std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
    	  std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
    	  std::cout << "delocalize: " << sf::Keyboard::delocalize(event.key.code) << std::endl;
    	  break;
    	}
        }
      return 0;
    }
    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
    19
    20
    21
    22
    23
    24
    25
    $ g++ main.cpp -lsfml-window
    main.cpp: In function ‘int main()’:
    main.cpp:14:23: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       14 |         if (event.key.scancode == sf::Keyboard::Scan::Escape){
          |                       ^~~~~~~~
    main.cpp:14:49: error: ‘sf::Keyboard::Scan’ has not been declared
       14 |         if (event.key.scancode == sf::Keyboard::Scan::Escape){
          |                                                 ^~~~
    main.cpp:16:50: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       16 |           std::cout << "scancode: " << event.key.scancode << std::endl;
          |                                                  ^~~~~~~~
    main.cpp:22:57: error: ‘getDescription’ is not a member of ‘sf::Keyboard’
       22 |           std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
          |                                                         ^~~~~~~~~~~~~~
    main.cpp:22:82: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       22 |           std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
          |                                                                                  ^~~~~~~~
    main.cpp:23:54: error: ‘localize’ is not a member of ‘sf::Keyboard’
       23 |           std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
          |                                                      ^~~~~~~~
    main.cpp:23:73: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       23 |           std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
          |                                                                         ^~~~~~~~
    main.cpp:24:56: error: ‘delocalize’ is not a member of ‘sf::Keyboard’
       24 |           std::cout << "delocalize: " << sf::Keyboard::delocalize(event.key.code) << std::endl;
    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
    19
    20
    21
    22
    23
    24
    25
    $ g++ main.cpp -lsfml-window -lsfml-event
    main.cpp: In function ‘int main()’:
    main.cpp:14:23: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       14 |         if (event.key.scancode == sf::Keyboard::Scan::Escape){
          |                       ^~~~~~~~
    main.cpp:14:49: error: ‘sf::Keyboard::Scan’ has not been declared
       14 |         if (event.key.scancode == sf::Keyboard::Scan::Escape){
          |                                                 ^~~~
    main.cpp:16:50: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       16 |           std::cout << "scancode: " << event.key.scancode << std::endl;
          |                                                  ^~~~~~~~
    main.cpp:22:57: error: ‘getDescription’ is not a member of ‘sf::Keyboard’
       22 |           std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
          |                                                         ^~~~~~~~~~~~~~
    main.cpp:22:82: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       22 |           std::cout << "description: " << sf::Keyboard::getDescription(event.key.scancode).toAnsiString() << std::endl;
          |                                                                                  ^~~~~~~~
    main.cpp:23:54: error: ‘localize’ is not a member of ‘sf::Keyboard’
       23 |           std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
          |                                                      ^~~~~~~~
    main.cpp:23:73: error: ‘struct sf::Event::KeyEvent’ has no member named ‘scancode’
       23 |           std::cout << "localize: " << sf::Keyboard::localize(event.key.scancode) << std::endl;
          |                                                                         ^~~~~~~~
    main.cpp:24:56: error: ‘delocalize’ is not a member of ‘sf::Keyboard’
       24 |           std::cout << "delocalize: " << sf::Keyboard::delocalize(event.key.code) << std::endl;

  6. #6
    Membre Expert
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 95
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 667
    Par défaut
    Ton lien c'est un exemple pour la version 2.6, et la version actuelle est la 2.6.1, donc à part un problème de configuration ou de dépendance il n'y a rien qui explique ton échec de compilation. Sinon, essaye les exemples fournis directement avec la lib.

  7. #7
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    390
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 390
    Billets dans le blog
    16
    Par défaut
    que pensez-vous de SDL2?

Discussions similaires

  1. [HOOK] Problème(s) pour réaliser le tutoriel sur les HOOKS
    Par Rodrigue dans le forum C++Builder
    Réponses: 13
    Dernier message: 27/07/2016, 18h22
  2. Tutoriel sur le BDE ? (et question en même temps!)
    Par Yomane dans le forum C++Builder
    Réponses: 7
    Dernier message: 18/02/2004, 17h39
  3. Réponses: 3
    Dernier message: 24/11/2003, 17h41
  4. F.A.Q, Doc, cours, tutoriels sur JBuilder
    Par Ricky81 dans le forum JBuilder
    Réponses: 0
    Dernier message: 14/03/2002, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo