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.


Sujets - gregleboss50

Pages: [1]
1
Java / Portage android
« le: Mars 16, 2014, 09:06:23 pm »
Bonjour, je ne sais pas si je suis dans la bonne section mais je m'interroge sur le portage de la sfml sur Android qui été prévu il y a quelque mois déjà et dont je ne trouve aucune suite.
Donc ma question est : y a-t-il une version android de la sfml ?
Si non es-ce en cours de dev ?

Merci d'avance :)

2
Général / Bloquer la souris au centre de l'écran
« le: Octobre 13, 2013, 11:13:51 am »
Bonjour,
je code une camera FreeFly avec OpenGL 3.3 (je suis le tuto sur le site du zéro mais dans celui-ci OpenGL s'utilise dans un contexte SDL) et évidement j'ai un problème (ba oui sinon je serais pas là ^^).

Le problème est que SFML n’implémente pas de fonction "curseur relatif" (avec le curseur toujours au centre de l'ecran) donc j'ai fais comme ceci :

while(m_theWindow.pollEvent(event))
{
        if (event.type == sf::Event::MouseMoved) {
            if(!m_ignorNextMove) {
                m_lastPos = sf::Vector2i(event.mouseMove.x, event.mouseMove.y);
                sf::Mouse::setPosition(m_cursorBase, m_theWindow);
                m_ignorNextMove = true;
            }
            else m_ignorNextMove = false;

            if(mouseHasMove()) {
                cam.orienter(getRelPosition().x, getRelPosition().y);
            }
        }
}
Ce code ce situe dans une fonction nommé update() dans la class Input (fonction appelé à chaque tours de boucle).

m_theWindow est une référence vers un sf::Window
m_cursorBase est le milieu de la fenêtre (il est réinitialisé à chaque event sf::Event::Resized)

la fonction mouseHasMove() :
bool Input::mouseHasMove() const {
    if(m_cursorBase.x == m_lastPos.x && m_cursorBase.y == m_lastPos.y) return false;
    else return true;
}

Tous cela marche mais si je déplace la souris très vite elle sort de l'ecran et c'est mal !
J'aimerais donc savoir comment interdit la souris de sortir de l'ecran (tout en puissant toujours la libérer par un ALT + Tab ou avec la touche WINDOWS.

Merci d'avance :)

3
Général / [SFML 2.1] Recompilation
« le: Octobre 04, 2013, 06:31:17 pm »
Bonjour,
j'essaye d'installer sfml 2.1 sur mon ordi, le programme compile mais j'ai une erreur de point d'entrée dans libstdc++-6.dll donc je me suis dis "ok je vais recompiler tous sa" :)

je suis le tuto et CMake m'insulte :
Citer
CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set ...

Pourtant mon path est bien (si je tape par exemple mingw32-make -v sa me retourne bien GNU Make 3.82 ...).

Merci d'avance pour votre aide :)

4
Général / [SFML - 1.6]Le programme a cessé de fonctionner
« le: Janvier 03, 2013, 02:29:42 pm »
Bonjour,
j'ai suivi à la lettre le tuto d’installation sous code::blocks,
je compile se programme :
#include <SFML/System.hpp>
#include <iostream>

int main()
{
    sf::Clock Clock;
    while (Clock.GetElapsedTime() < 5.f)
    {
        std::cout << Clock.GetElapsedTime() << std::endl;
        sf::Sleep(0.5f);
    }
    system("PAUSE");

    return 0;
}

Tout se passe bien à la compilation mais quand je le lance : le programme cesse directement de fonctionner !

J'ai installer SFML directement dans MinGW/include et MinGW/lib .
Dans build option : -lsfml-system
Dans #define : SFML_DYNAMIC
version de gcc : 4.7.1

Carte graphique (qui n'y est absolument pour rien car c'est un programme en console et les drivers sont à jour) : NVIDIA GeForce GTX 275

Merci pour votre aide et désoler pour les fautes d'orthographes .

PS : au passage si vous savez comment linker SFML avec Eclipse version C / C++ sa m’intéresse (j'ai fais presque la même démarche et j'ai a chaque fois le même problème).

5
Bonjour à tous,
j'essaye de réaliser une application en réseau avec la SFML, mais n'y connaissant rien en prog réseau, j'ai suivit les tuto sur le site officiel de la SFML.
Pour gérer tout les clients sur le serveur, j'utilise les SelectorTCP mais voila, la fonction wait du Selector bloque malgrès la présence d'un socket pret.
Voici mon code :
Serveur.cpp :
#include "Serveur.h"

Serveur::Serveur()
{
    if (!serveur.Listen(26666))
        return;
       
        serveur.SetBlocking(false);
       
    while (true)
    {
                sf::IPAddress Address;
                sf::SocketTCP Client;
                if(serveur.Accept(Client, &Address) == sf::Socket::Done)
                {
                        std::cout << "nouveau client : " << Address << std::endl;
                        selector.Add(Client);
                        this->sendMessage("new clients");                
                }
    }
}

void Serveur::sendMessage(std::string str)
{
        sf::Packet packet;
        packet << str;
        std::cout << "ici" << std::endl;
       
        unsigned int NbSockets = selector.Wait();
        std::cout << NbSockets << std::endl;
    for (unsigned int i = 0; i != NbSockets; ++i)
    {
        sf::SocketTCP Socket = selector.GetSocketReady(i);
               
                if(!Socket.Send(packet))
                {
                        selector.Remove(Socket);
                }
       
    }
}

Serveur::~Serveur()
{
        unsigned int NbSockets = selector.Wait();
    for (unsigned int i = 0; i < NbSockets; ++i)
    {
        sf::SocketTCP client = selector.GetSocketReady(i);
                client.Close();
    }
}
 
Serveur.h (rien d'important mais je le met quand même :
#ifndef SERVEUR_H
#define SERVEUR_H

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

class Serveur
{
public:
    Serveur();
    void sendMessage(std::string str);
    ~Serveur();
private:
        sf::SelectorTCP selector;
        sf::SocketTCP serveur;
};

#endif // SERVEUR_H
 
Le main créé juste une instance de Serveur.

Du côté client maintenant :
main.cpp (le seul fichier) :
#include <SFML/Network.hpp>
#include <iostream>

int main()
{
        bool continuer = true;
        sf::SocketTCP client;
       
        sf::Packet packet;
        std::string str;
       
        if (client.Connect(26666, "127.0.0.1") == sf::Socket::Done)
        {
                //client.SetBlocking(false);
                while(continuer)
                {
                        if(client.Receive(packet) == sf::Socket::Done)
                        {
                                packet >> str;
                                std::cout << str << std::endl;
                        }
                }
        }
        else
        {
                std::cout << "Probleme de connexion avec le serveur" << std::endl;
        }
        client.Close();
        system("pause");
        return 0;
}
 

Lorsqu'un client se connecte cela affiche dans la console du serveur :

nouveau client : 127.0.0.1
ici

Mais cela n'affiche pas la valeur de NbSockets car la fonction wait bloque et donc le client ne reçois rien.
La console affiche 1 à la déconnexion du client.

Merci de votre aide et désolé pour les fautes d'orthographes.

Pages: [1]