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

Pages: [1]
1
Graphique / Re : getMousePos() et redimensionnement de la fenêtre
« le: Septembre 25, 2015, 08:44:57 pm »
Merci Laurent, c'est exactement ce que je cherchais :)
J'avais pourtant bien fais le tour des tutos... désolé  :-[

2
Graphique / [résolu] getMousePos() et redimensionnement de la fenêtre
« le: Septembre 25, 2015, 06:31:10 pm »
Bonjour,

Imaginons que j'ai une RenderWindow dans laquelle j'affiche un cercle de rayon r, de centre (x,y).
J'ai une petite fonction qui calcule si la souris passe dessus le cercle en question. Cette fonction, utilise la fonction statique: sf::Mouse::getPosition(myWindow), et calcule, en fonction de la position et du rayon du cercle, si la souris est au dessus ou non.
Problème: lorsque je resize la fenêtre, le calcul de cette fonction n'est plus valide, puisque le repère de coordonnées de la souris change, alors que la position et le rayon du cercle ne changent pas.

Je suis parvenu à contourner le problème mais la solution que j'ai trouvé ne me convient pas. Elle consiste à conserver en mémoire un ratio, qui représente le resize de la RenderWindow, puis d'appliquer ce ratio à chaque fois que j'appelle getPosition(). Cette solution est un peu lourde je trouve, mais aussi je perds de l'info à chaque resize, et si on resize la fenêtre trop souvent, le ratio finit par être faux (propagation de l'erreur).

Je viens ici pour vous demander s'il n'y aurait pas de solution plus simple, plus propre.
Merci :)


3
Général / Re : [compilation] génération lib statiques en release
« le: Juin 12, 2013, 11:54:25 am »
Oui j'avais bien vu mais en fait je m'étais encore embrouillé les pinceaux avec cmake.
Je te demande pardon, je ferai plus attention avant de poster dorénavant.

4
bonjour,

c'est juste pour signaler quelque chose qui me parait bizzare. Je suis sous windows 7, avec vs11 (2012).
Je viens de générer les sln/vcproj avec cmake. Ensuite j'ai tout compilé en debug, ok. Mais en release, il n'y a que les libs non statiques qui sont générées (sfml-module.lib) mais pas libs statiques (sfml-module-s.lib).

Ce n'est pas vraiment un problème car elles sont disponibles dans le package vs11 sur la page de download de la sfml2, donc c'est juste pour signaler le truc.

edit: ha non, en fait même en debug les libs statiques ne sont pas générées

5
Général / Re : [cmake] problèmes avec Macros.cmake
« le: Juin 12, 2013, 11:04:43 am »
Aaaaaa ok c'est bon, en fait je me suis emmêlé les pinceaux entre les deux downloads. Je me suis trop compliqué la vie en essayant de déplacer les fichiers cmake.

My bad sorry.

6
Général / Re : Re : [cmake] problèmes avec Macros.cmake
« le: Juin 12, 2013, 10:59:31 am »
Citation de: tutoriel
Indiquez à CMake où se trouve le code source de SFML (ce doit être la racine de la hiérarchie SFML, là où se trouve le premier fichier CMakeLists.txt).
ça j'ai bien fait. En fait si on ne fait pas ça, l'erreur qu'on obtiens c'est quelque chose du style "cannot find CMakeLists.txt".

Et sinon, les sources de la page de téléchargements sont les dernières sources, celles de la version en cours de développement. Si tu veux les sources de SFML 2.0 il faut aller sur la page de téléchargements de SFML 2.0.
Ok. Je viens de télécharger les sources (sur la page http://www.sfml-dev.org/download/sfml/2.0/), et j'ai remplacé l'ancien folder par le nouveau, mais j'ai le même problème.

7
Général / [résolu] [cmake] problèmes avec Macros.cmake
« le: Juin 12, 2013, 10:50:24 am »
Bonjour,

j'essaie de compiler la SFML2 afin d'avoir les pdb (pour ne plus avoir tous ces warnings LNK4099) des libs.
Je suis sur windows, j'utilise CMake en mode gui, et visual 11 (vs2012)
J'ai téléchargé la version release (sans les sources), puis j'ai téléchargé les sources (sfml-master.zip) sur la page download.
Lorsque je lance "configure" dans cmake, j'obtiens un message d'erreur suivant:
Citer
CMake Error at CMakeLists.txt:3 (include):
  include could not find load file:

    C:/chez/moi/SFML-2.0/src/SFML/cmake/Macros.cmake
Du coup j'ai cherché, et en fait ce fichier n'est dans src, mais dans le dossier cmake à la racine: C:/chez/moi/SFML2-0/cmake

Alors j'ai copié tout le dossier cmake dans le dossier src/SFML (C:/chez/moi/SFML-2.0/src/SFML), et alors là j'obtiens tout un tas d'erreurs:
Citer
CMake Error at cmake/Macros.cmake:139 (set_target_properties):
  set_target_properties called with incorrect number of arguments.
Call Stack (most recent call first):
  System/CMakeLists.txt:81 (sfml_add_library)


CMake Error at cmake/Macros.cmake:139 (set_target_properties):
  set_target_properties called with incorrect number of arguments.
Call Stack (most recent call first):
  Window/CMakeLists.txt:125 (sfml_add_library)


CMake Error at cmake/Macros.cmake:139 (set_target_properties):
  set_target_properties called with incorrect number of arguments.
Call Stack (most recent call first):
  Network/CMakeLists.txt:54 (sfml_add_library)


CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (message):
  Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindFreetype.cmake:107 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  Graphics/CMakeLists.txt:102 (find_package)


CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 2.8)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.
Avant de chercher plus avant, j'aurais aimé avoir votre avis, car j'ai bien l'impression que j'ai fait une erreur dès le début du process.

Quelqu'un a une idée de ce que j'ai mal fait?

8
Graphique / [SFML 2] probleme avec sf::Text::SetText()
« le: Mars 11, 2013, 05:08:14 pm »
Bonjour,

je fais juste un POC, donc le code est minimal et moche. J'utilise le module network de la SFML pour envoyer des données depuis un serveur. Voici le code du serveur:

#include <string>
#include <iostream>

#include <SFML/Network/IpAddress.hpp>
#include <SFML/Network/TcpSocket.hpp>
#include <SFML/Network/TcpListener.hpp>
#include <SFML/Network/Packet.hpp>
#include <SFML/System/Mutex.hpp>
#include <SFML/system/Thread.hpp>

using namespace std;

bool quit = false;
string msg_to_send = "";
sf::Mutex global_mutex;
sf::TcpSocket socket;

int exit_error( const string & msg )
{
        cout << "error: " << msg << endl;
        getchar();
        return 1;
}

void send_message()
{
        while(!quit)
        {
                sf::Packet packet_send;
                global_mutex.lock();
                packet_send << msg_to_send;
                global_mutex.unlock();
               
                socket.send( packet_send );
               
                std::string msg;
                sf::Packet packet_receive;
        }
}

void get_input()
{
        std::string s;
        std::cout << "\nEnter 'exit' to quit or message to send: ";
        std::cin >> s;
        if(s == "exit")
                quit = true;
        global_mutex.lock();
        msg_to_send = s;
        global_mutex.unlock();
}

int main()
{
        sf::TcpListener listener;
        listener.listen( 4567 );
        listener.accept( socket );
        std::cout << "New client connected: " << socket.getRemoteAddress() << std::endl;

        sf::Thread thread( &send_message );
        thread.launch();

        while(!quit)
                get_input();

        cout << "end ok" << endl;
        getchar();
        return 0;
}

Le client reçoit bien les données, mais l'affichage du message reçu est des plus aléatoire. Parfois rien n'est affiché, parfois seulement des bribes (par exemple, j'envoie "test", et il m'affiche "tt" ). Le code du client:
#include <string>

#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>


using namespace std;


sf::TcpSocket socket;
bool quit = false;
sf::Text text;
sf::Mutex global_mutex;

bool connect()
{
        if(socket.connect( sf::IpAddress::LocalHost, 4567 ) == sf::Socket::Done)
                return true;
        return false;
}

void receive()
{
        while( !quit )
        {
                sf::Packet packet_receive;
                socket.receive( packet_receive );
                string msg;
                if ( packet_receive >> msg )
                        if ( !msg.empty() )
                        {
                                global_mutex.lock();
                                text.setString( msg );
                                global_mutex.unlock();
                        }
        }
}

int main()
{
    sf::RenderWindow window(sf::VideoMode(600, 200), "SFML works!");
        sf::Font my_font;
        if ( !my_font.loadFromFile( "C:/Windows/Fonts/Arial.ttf" ) )
                return 1;

        text.setCharacterSize( 30 );
        text.setColor( sf::Color::Green );
        text.setPosition( 100, 100 );
        text.setFont( my_font );

        if ( !connect() )
                return 2;

        sf::Thread thread_listen( receive );
        thread_listen.launch();

        while (window.isOpen())
        {
                sf::Event event;
                while (window.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed)
                                window.close();
                }

                window.clear();
       
                global_mutex.lock();
                window.draw(text);
                global_mutex.unlock();
       
                window.display();
        }

        return 0;
}

Je pense que le problème vient de l'affectation de la chaine de caractère ( au niveau du text.SetString() ), c'est pour ça que je poste dans cette section du forum.

Voyez-vous ce qui cloche dans mon code?

Pages: [1]