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 - Timidouveg

Pages: [1] 2 Suivante »
1
Fenêtrage / Re : [SFML 2.2] Problème avec les évènements ?
« le: Juillet 20, 2015, 06:14:27 pm »
En fait mon RenderWindow n'est qu'une façade en inline de celui de SFML, donc PollEvent, fait juste pollEvent.
Enfin, j'ai fais un test avec du code minimal comme ceci :
#include <SFML/Window.hpp>
#include <iostream>

int main ( void ) {
  sf::Window sfWindow (sf::VideoMode (800, 600), "My window");

  while (sfWindow.isOpen ()) {
    sf::Event sfEvent;

    while (sfWindow.pollEvent (sfEvent)) {
      // Elementary events for the main window of the game
      switch (sfEvent.type) {
        // Close window :
        case sf::Event::Closed :
          sfWindow.close ();
          break;
        // Events of the mouse
        case sf::Event::MouseMoved :
          std::cout << "Event::Type::MouseMoved" << std::endl;
          break;
        default :
          break;
      }
    }
  }

  return EXIT_SUCCESS;
}
Le problème se répète pour la souris. Et ça fait bien deux signaux de mouvement de souris, comme le bug que j'avais déjà observé il y a longtemps  :-\

2
Fenêtrage / [SFML 2.2] Problème avec les évènements ?
« le: Juillet 19, 2015, 05:37:28 pm »
Bonjour à tous,

J'ai cherché sur le forum et sur internet, j'espère ne pas être passé à côté de la réponse. Excusez-moi donc si ce sujet a déjà été traité :s

Je rencontre un problème avec mon code pour les évènements pour la version 2.2 de SFML. Je ne sais pas si l'origine est mon code, SFML ou l'OS (Windows 7). J'ai observé deux comportements dont qui un arrive tout le temps, et l'autre qui arrive parfois.
- Événement régulier : Lorsque je suis sur mon jeu, fenêtre active, je ne touche pas à ma souris, dés que j'ai un message sur Pidgin (actif derrière pour papoter) ou que je change de fenêtre avec la combinaison de touches Alt-tab, un évènement de mouvement de souris s'active.
- Événement aléatoire : Lorsque je lance mon jeu, alors qu'il y une conversation avec souvent des alertes sur Skype, je tombe dans mon jeu (en réalité je descends), c'est à dire que l'évènement de la touche 3 du pavé numérique s'active et cette fois ne s'arrête pas.
Je vous mets mon code ici, et vous remercie pour votre aide :)
void Game::ProcessInput ( void ) {
  gm::RenderWindow& gmMainWindow = GetWindow (RenderTargets::ID::MainWindow);

  Event::Type eEventType      = Event::Type::None;
  sf::Keyboard::Key sfKeyCode = sf::Keyboard::Key::Unknown;

  sf::Event sfEvent;
  while (gmMainWindow.PollEvent (sfEvent)) {
    // Elementary events for the main window of the game
    switch (sfEvent.type) {
      // Close window :
      case sf::Event::Closed :
        eEventType = Event::Type::Closed;
        break;
      // Resize window :
      case sf::Event::Resized :
        gmMainWindow.SetView (sf::View (sf::FloatRect (0.f, 0.f, static_cast<GLfloat> (sfEvent.size.width), static_cast<GLfloat> (sfEvent.size.height))));
        gmMainWindow.SetSize (sf::Vector2u (sfEvent.size.width, sfEvent.size.height));
        ComputeWindowCenter ();
        eEventType = Event::Type::Resized;
        break;
      // Events of the keyboard
      case sf::Event::KeyPressed :
        eEventType = Event::Type::KeyPressed;
        sfKeyCode = sfEvent.key.code;
        break;
      // Events of the mouse
      case sf::Event::MouseMoved :
        if (!m_bPassMouseMoved) {
          eEventType = Event::Type::MouseMoved;
          // For the loop pass the redondant MouseMoved generated by
          // the changement of the position (probably a bug in the function
          // SetCursorPos for Microsoft Windows. I haven't checked for other OS).
          m_bPassMouseMoved = GL_TRUE;
        } else
          eEventType = Event::Type::None;
        break;
      case sf::Event::MouseWheelMoved :
        if (sfEvent.mouseWheel.delta > 0)
          eEventType = Event::Type::MouseWheelUp;
        else
          eEventType = Event::Type::MouseWheelDown;
        break;
      default :
        eEventType = Event::Type::None;
        break;
    }

    // Call of the HandleEvent of the states of the game
    if (eEventType != Event::Type::None)
      m_oStateStack.HandleEvent (eEventType, sfKeyCode);
  }
  // Unlock the MouseMoved for the next tick.
  if (m_bPassMouseMoved)
    m_bPassMouseMoved = GL_FALSE;

  // Call of the HandleInput of the states of the game
  m_oStateStack.HandleInput ();
}
Pour ce passage, m_bPassMouseMoved = GL_TRUE; j'ai eu un soucis de répétition du mouvement de la souris, il y a pas mal de temps, et j'avais trouvé sur internet qu'un bug dans Windows en serait à l'origine. J'avais résolu ce problème en faisant cette pirouette. Mais, je ne suis sûr de rien :)

Le reste du code n'est pas utile à mon avis, car j'ai mis un std::cout dans la condition du mouvement de la souris et il m'affiche bien le texte à chaque fois que :
- Une alerte Pidgin, et peut-être d'autres programmes, se déclenche.
- Je bascule vers une autre fenêtre.
- Je bascule vers la fenêtre du jeu.
- Lorsque le jeu passe d'un état à un autre (écran d'information, écran titre, écran de jeu), donc dans la même fenêtre, mais uniquement si une alerte à eu lieu et que je n'ai pas répondu. Ça peut carrément cumuler deux mouvement de souris parfois à ce moment. Et c'est un peu aléatoire apparemment.
J'ai codé une version avec GainedFocus et LostFocus, mais ça n'y change strictement rien. J'ai comme l'impression que c'est le même bug qu'il y a longtemps.

3
Bonjour :)

J'utilise une petite part du code trouvé dans le livre surtout pour le moteur de jeu, mais ce dernier va évoluer au fil du temps. Je pense qu'il restera des traces du code dans l'avenir, tout simplement parce qu'il me convient très bien dans sa simplicité et son efficacité.

J'ai ajouté la licence que tu m'as indiqué après la licence de mon jeu, dans le fichier prévu à cet effet. Et j'ai mis dans quelques fichiers du code-source une petite phrase à la fin de la référence à ma licence pour indiquer l'inspiration et la référence.

Pour vérifier si la façon dont je m'y suis pris convient ou doit être amélioré ou si j'ai oublié quelque chose, n'hésites pas à jeter un œil. Pour le moment, le code-source n'est pas trop important pour s'y perdre. La partie concerné n'est limité qu'au GameEngine et les States. Éventuellement le gestionnaire de textures, mais celui-ci sera beaucoup modifié par la suite et s'éloignera du code original.

https://github.com/TimyusVegetari/Demiurge

Merci, de ton aide :)

4
Graphique / Re : Question sur setOrigin () et les floats
« le: Janvier 15, 2015, 09:56:04 pm »
Ah d'accord :)
Moi qui croyais que j'avais enfin trouver un truc pour contribuer à la SFML, zut ;D

Il y aurait un bug ou une fonctionnalité que je pourrais tenter de voir au cas où ? ::)

5
Graphique / Re : Question sur setOrigin () et les floats
« le: Janvier 15, 2015, 03:47:32 pm »
Désolé pour la mauvaise section, je n'ai plus l'habitude du forum depuis le temps :s

Pour l'exemple que tu as donné, effectivement, les valeurs sont plus tôt des ratios, c'est à dire que 1 est en fait 100%, donc il faut nécessairement des chiffres après la virgule. Mais, concernant les transformables, peut-il y avoir des utilisateurs qui ont intérêt à ce que les floats entrés dans setOrigin (x,y) ne soient pas converti en floats contenant que la valeur entière et le reste à zéro ?

J'ai testé un sf::Text de SFML 2.2 en mettant dans setOrigin, un x = 40.f et comparé avec un autre dont x = 40.5f et dans le premier cas le dessin du texte est net, alors que dans le deuxième il est légèrement lissé, ce qui se voit un peu qu'en-même. C'est comme un très léger flou.
Je ne te parle pas de ce que ma classe de texte maison faisait, c'était pire, mais je m'étais inspiré d'une version antérieur de SFML donc bref :D

Ma parade a consisté à écrire une surcouche de setOrigin pour enregistrer le x et le y en passant par floorf () pour forcer la retenu que d'une valeur entière sans remettre en question le choix des floats. Mais je me demandais donc si ce genre de modif aurait sa place directement dans la SFML ?

6
Bonjour :)

J'ai décidé de mettre mon jeu en licence GNU GPL v2 et pour l'instant j'utilise beaucoup de code venant du livre, adapté à ma sauce. Je souhaite savoir ce que je dois préciser au niveau de la licence, car j'écris toujours quelque chose en haut de chaque fichier du projet et je ne voudrais pas qu'il ait conflit de licences et aussi m'approprier la paternité partielle du code fait par les auteurs du livre. Et puis, ça me plairait beaucoup que ça soit l'occasion de faire connaître encore plus votre travail :)

J'ai d'ailleurs la même question pour SFML, soit dit en passant.

7
Graphique / Question sur setOrigin () et les floats
« le: Janvier 14, 2015, 05:39:01 pm »
Bonjour à tous :)

J'espère que ce sujet est dans la bonne section, je n'étais pas sûr, j'ai donc préféré tenté ici pour ne pas polluer des sections plus spécifiques.

Plusieurs variables de sf::transformable sont des floats comme la position, l'origine, ... Il me semble que c'est pour être plus en phase avec la carte graphique, non ? J'ai souhaité faire mes propres class Font et Text car j'avais des critères très précis pour mes jeux-vidéo, et sans entrer dans les détails, j'ai eu un bug graphique que j'ai rapidement résolu sans modifier SFML. Ceci dit, je trouvais que la correction que j'ai apporté n'étais pas élégante. Ce problème est lié à la méthode setOrigin (float x, float y) dans transformable qui peut accepter certes des floats, mais donc des nombres qui n'ont pas que des zéros derrière la virgule. Si vous jugez que les détails du soucis rencontré est intéressant, je vous les fournirais volontiers :)

Ce que je souhaite savoir, avant tout et essentiellement, c'est est-ce qu'il y a des situations dans lesquelles la présence de chiffres après la virgule dans les x et y de l'origine d'un transformable est utile ? Même question pour la position, même si ça ne pose aucun problème dans le cas que j'ai rencontré, mais c'est par curiosité.

8
Graphique / Re : Texte bitmap
« le: Octobre 11, 2013, 04:46:05 pm »
Donc, je fais mon propre système, c'est bien ça ?
Dans ce cas, j'en profiterais pour proposer le code-source sur le site dans la section qui convient :)

9
Graphique / Texte bitmap
« le: Octobre 11, 2013, 01:57:58 pm »
Bonjour à tous,

Je souhaite ajouter à mon jeu du texte qui n'utilise pas les polices de caractères habituelles, mais une police bitmap de mon propre cru. Dans certains jeux-vidéo, la police de caractère utilisée est dessiné avec des détails, il ne s'agit pas d'un glyphe simple monochrome. J'aurais voulu utiliser le sf::text de SFML 2.0 avec un sf::font qui chargerait un fichier png et éventuellement un fichier contenant des informations de dimensions et position de chaque caractères pour s'y retrouver dans le fichier image, étant donné que mes caractères n'ont pas la même largeur.

Je me demandais si il existait une méthode connue ici pour faire cela. Si tel n'est pas le cas, j'envisage de me créer mon propre système de police et de texte inspiré de ceux de SFML, pouvant être dessiné par elle, mais adapté à mon besoin.

10
Graphique / Re : Undefined reference to constructeur de RenderWindow
« le: Juillet 14, 2013, 08:40:58 pm »
Merci pour l'info, j'avoue avoir beaucoup de lacunes que l'université n'a rien fait pour combler :-[ Je vais voir ce que je peux trouver sur tout ça :)

11
Graphique / Re : Undefined reference to constructeur de RenderWindow
« le: Juillet 14, 2013, 05:41:33 pm »
Si tu mets la ou les dll de SFML dans le répertoire de ton programme, ça donne quoi ?

12
Graphique / Re : Problème avec Texture 3D et texture 2D array d'OpenGL
« le: Juillet 14, 2013, 05:31:12 pm »
J'ai finalement résolu tout les problèmes qui venaient de 3 choses :
- Sur mon ordinateur, je ne dois pas utiliser EXT dans les noms, après c'est peut-être différent sur d'autres machines.
- J'ai initialisé mon espace pour la texture 3D avec un mipmap à 1 alors que je ne m'en servais pas. Je pensais qu'il en fallait au moins 1, mais ça s'écrit 0 tout simplement pour la base.
- Et là ce qui concerne SFML, pour faire la copie des morceaux d'image il fallait qu'en interne SFML active GL_TEXTURE_2D, hors il se trouvait dans mon contexte GL_TEXTURE_3D.

Durant mes tentatives, SFML s'est trouvé instable dans sa partie shader, dans ses dessins et peut-être même les coordonnées de certains sprites et même à un moment il ne savait plus gérer l'affichage tout court.
C'est con, mais que SFML fasse de l'OpenGL en interne et donc puisse faire un truc qu'on veut justement faire autrement est une chose qu'on oublie parfois. Bref, j'espère ne pas avoir polluer ce forum avec mon sujet, et que ça servira à ceux qui auraient utilisé des types de textures différents et rencontreraient des gros bugs :)

Dans mon cas et dans d'autres, vaut-il peut-être mieux utiliser une librairie complémentaire (exemple FreeImage) pour charger et manipuler des images avant de les charger dans la carte graphique ?

13
Bonjour à tous :)

Je rencontre un soucis pour passer les pixels d'une sf::Image à un glSubTexture3D soit en mode GL_TEXTURE_2D_ARRAY ou en mode GL_TEXTURE_3D, ainsi qu'avec l'écriture suivit de _EXT. Glew est bien initialisé et les extensions correspondantes sont bien vérifiées.

Une fois l'espace de la texture 3D ou 2D array allouée, j'envoie mes images une par une de façon à les avoir couche par couche et ainsi les manipuler via un shader au travers d'un seul appel de dessin d'objets instanciés. C'est pour expérimenter une optimisation de mon rendu.
Le programme plante lorsque j'utilise glSubTexture3D avec la méthode getPixelsPtr() de mon image.
void TexturesManager::LoadTextures(const std::string& stFileName, GLint iLayersCount) {
  // Récupération des textures dans le fichier
  sf::Image *psfImage = new sf::Image();
  if ( !psfImage ) {
    std::cerr << "Allocation de texture impossible" << std::endl;
    exit(1);
  }
  psfImage->loadFromFile("data/materials/textures/blocks/static/"+stFileName+".png");

  // Préparation au découpage des textures
  GLuint uiImageW       = psfImage->getSize().x;
  sf::Image sfTexImage;
  sfTexImage.create(32, 32);

  glEnable(GL_TEXTURE_2D_ARRAY_EXT);

  // Allocation de l'espace de stockage des textures dans la carte graphique
  glGenTextures(1, &this->m_uiBlocksTexID);
  glBindTexture(GL_TEXTURE_2D_ARRAY_EXT, this->m_uiBlocksTexID);
  glTexImage3DEXT(GL_TEXTURE_2D_ARRAY_EXT, 1, GL_RGBA8, 32, 32, iLayersCount, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
  glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

  // Découpage et stockage des textures dans la carte graphique
  GLuint uiX = 0, uiY = 0;
  for (GLuint iLayer = 0 ; iLayer < iLayersCount ; iLayer++) {
    sfTexImage.copy(*psfImage, 0, 0, sf::IntRect(uiX, uiY, uiX+32, uiY+32), GL_TRUE);
    glTexSubImage3DEXT(GL_TEXTURE_2D_ARRAY_EXT, 0, 0, 0, iLayer, 32, 32, 1, GL_RGBA, GL_UNSIGNED_BYTE, sfTexImage.getPixelsPtr());
    iLayer++;
    uiX += 32;
    if (uiX < uiImageW) {
      uiX = 0;
      uiY += 32;
    }
  }

  glDisable(GL_TEXTURE_2D_ARRAY_EXT);
  glEnable(GL_TEXTURE_2D); // En raison d'un autre problème j'ai essayé ceci, mais ça ne change rien :s

  // Suppression de l'image du fichier
  delete psfImage;
}

Un autre problème se présente, que j'ai essayer de résoudre entre autres par glEnable(GL_TEXTURE_2D); que vous pouvez voir commenté. Dans une autre partie de mon code, deux shaders SFML sont initialisés pour faire du flou pour l'écran de pause du jeu. Tout fonctionne bien lorsque je commente à partir de glTexImage3DEXT(GL_TEXTURE_2D_ARRAY_EXT, 1, GL_RGBA8, 32, 32, iLayersCount, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);, mais si je libère ce dernier, les shaders de SFML plantent à l'initialisation. Ces shaders et la zone du code n'ont rien à voir avec les textures 3D ou 2D array. Mon flou travaille sur une texture 2D de la scène de jeu sans l'interface, rendu par un FBO.

J'espère avoir été clair, si ce n'est pas le cas, j'essaierais d'apporter le plus de précisions possible :)

14
Je ne suis pas d'accord avec la désignation "la langue universelle", mais ce n'est pas le lieu pour débattre de ça.

Comme il y a beaucoup de choses en anglais et pas assez de traductions et que je découvre depuis quelques temps des livres très intéressants sur le développement de jeux-vidéo ou d'algorithmes poussés, je me range du côté de ce point de vue et préfère profiter pour me remettre à niveau en anglais avec ce livre :)

15
Il y a une version française ? Parce que ça à l'air d'être en anglais, je me trompe ?

Pages: [1] 2 Suivante »
anything