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

Pages: « Précédente 1 [2]
16
Fenêtrage / Problème de curseur
« le: Février 12, 2013, 07:51:17 pm »
Hello !
J'utilise dans mon programme SFML une image en guise de curseur, cependant quand je redimensionne ma fenêtre, le curseur n'est plus positionné au même endroit que la souris (ses coordonnées sont peut-être également soumises au redimensionnement) ; une idée pour corriger ce problème ?

17
Fenêtrage / Re : SFML et OpenGL
« le: Février 04, 2013, 04:18:27 pm »
Super ! Merci !

Problème résolu.

18
Fenêtrage / Re : SFML et OpenGL
« le: Février 04, 2013, 04:10:53 pm »
Merci !

De cette manière, je peux utiliser conjointement SFML et OpenGL ?
Par exemple, HUD / title screen / menu avec SFML et le reste avec OpenGL ? =O

19
Fenêtrage / [Résolu] SFML et OpenGL
« le: Février 04, 2013, 04:04:11 pm »
Rebonjour,

Me revoilà avec un nouveau problème : je cherche à afficher des images 2D via SFML au sein d'un affichage 3D géré par OpenGL. Or, mon image 2D ne s'affiche pas, ou encore, elle s'affiche, mais le décor 3D ne s'affiche, lui, pas ; d'où ce problème vient-il ?
Voici mon code (attention c'est le bazar, y'a tout et n'importe quoi^^) :

// Includes nécessaires
#include "SceneManager.h"
#include "Game/Scenes/TitleScreen.h"
#include "ScriptingEngine/LuaDatabase.h"

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <GL/gl.h>
#include <GL/glu.h>

// Namespaces utilisés
using namespace sf;

// Point d'entrée du programme
int main()
{
    LuaDatabase lua;
    lua.setWindowSize();
    lua.setWindowTitle();

    // Fenêtre de rendu
    RenderWindow *app =
        new RenderWindow(VideoMode(lua.getWindowSize().width, lua.getWindowSize().height), lua.getWindowTitle());


    // Gestionnaire de scène
    SceneManager *sceneManager = new SceneManager(app);
    Sprite sprite;
    Image img;
    img.LoadFromFile("Graphics/Pictures/Cursor.png");
    sprite.SetImage(img);
    // Create a clock for measuring time elapsed
    sf::Clock Clock;

    // Set color and depth clear value
    glClearDepth(1.f);
    glClearColor(0.f, 0.f, 0.f, 0.f);

    // Enable Z-buffer read and write
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);

    // Setup a perspective projection
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.f, 1.f, 1.f, 500.f);

    // Boucle principale
    while (app->IsOpened())
    {

        sprite.SetPosition(app->GetInput().GetMouseX(), app->GetInput().GetMouseY());
        sf::Event Event;
        while (app->GetEvent(Event))
        {
            // Close window : exit
            if (Event.Type == sf::Event::Closed)
                app->Close();

            // Escape key : exit
            if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
                app->Close();

            // Resize event : adjust viewport
            if (Event.Type == sf::Event::Resized)
                glViewport(0, 0, Event.Size.Width, Event.Size.Height);
        }

        app->SetActive();

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glTranslatef(0, 0, -200);
        glRotatef(Clock.GetElapsedTime() * 50, 1, 0, 0);
        glRotatef(Clock.GetElapsedTime() * 30, 0, 1, 0);
        glRotatef(Clock.GetElapsedTime() * 90, 0, 0, 1);

        glBegin(GL_QUADS);

            glVertex3f(-50.f, -50.f, -50.f);
            glVertex3f(-50.f,  50.f, -50.f);
            glVertex3f( 50.f,  50.f, -50.f);
            glVertex3f( 50.f, -50.f, -50.f);

            glVertex3f(-50.f, -50.f, 50.f);
            glVertex3f(-50.f,  50.f, 50.f);
            glVertex3f( 50.f,  50.f, 50.f);
            glVertex3f( 50.f, -50.f, 50.f);

            glVertex3f(-50.f, -50.f, -50.f);
            glVertex3f(-50.f,  50.f, -50.f);
            glVertex3f(-50.f,  50.f,  50.f);
            glVertex3f(-50.f, -50.f,  50.f);

            glVertex3f(50.f, -50.f, -50.f);
            glVertex3f(50.f,  50.f, -50.f);
            glVertex3f(50.f,  50.f,  50.f);
            glVertex3f(50.f, -50.f,  50.f);

            glVertex3f(-50.f, -50.f,  50.f);
            glVertex3f(-50.f, -50.f, -50.f);
            glVertex3f( 50.f, -50.f, -50.f);
            glVertex3f( 50.f, -50.f,  50.f);

            glVertex3f(-50.f, 50.f,  50.f);
            glVertex3f(-50.f, 50.f, -50.f);
            glVertex3f( 50.f, 50.f, -50.f);
            glVertex3f( 50.f, 50.f,  50.f);

        glEnd();

        app->Draw(sprite);
        app->Display();
    }

    // On libère l'espace mémoire alloué
    free(app);
    free(sceneManager);
    app = NULL;
    sceneManager = NULL;

    // Fin du programme
    return EXIT_SUCCESS;
}
 

20
Graphique / Re : Problème d'affichage d'une image
« le: Février 01, 2013, 06:28:54 pm »
Ah oui, effectivement.
C'est d'autant plus étrange que j'ai pu créer l'icône de la fenêtre de cette manière ^^

Enfin... Problème résolu ! ^_^

21
Graphique / [Résolu !] Problème d'affichage d'une image
« le: Février 01, 2013, 05:07:18 pm »
Rebonjour ^^
Je cherche à afficher une image là où est supposée apparaître la souris, cependant... Un screen sera plus parlant ^^" :



Le rectangle bleu est supposé être cette image :



Voici le code en question (je ne mets que les parties relatives à l'affichage de l'image pour davantage de clarté). Update et draw sont appelées en boucle, et l'objet cursor est une instance de la classe Sprite.

#include "SceneManager.h"

SceneManager::SceneManager(RenderWindow *app)
{
    // Initialisation
    this->app = app;

    // Icône de la souris
    Image curs;
    curs.LoadFromFile("Graphics/Pictures/Cursor.png");
    this->cursor.SetImage(curs); // cursor est un Sprite !
}

void SceneManager::update()
{
    // Màj des coordonnées du curseur
    this->cursor.SetPosition(this->app->GetInput().GetMouseX(), this->app->GetInput().GetMouseY());

    // ...
}

void SceneManager::draw()
{
    // Efface l'écran (remplissage avec du blanc)
    this->app->Clear(Color(255, 255, 255));

    // Affichage de la souris
    this->cursor.SetColor(Color(0, 255, 255, 128));
    this->app->Draw(this->cursor);

    // Affichage du contenu de la fenêtre à l'écran
    this->app->Display();
}

22
Fenêtrage / Re : Masquer la souris ?
« le: Février 01, 2013, 04:32:57 pm »
Ouais, ça fonctionne !  ;D (après une petite recherche sur la classe RenderWindow plutôt que Window)
Merci ^^

23
Fenêtrage / [Résolu] Masquer la souris ?
« le: Février 01, 2013, 02:15:03 pm »
Dans le cadre de mon projet vidéoludique, je voudrais savoir s'il était possible de masquer la souris pour afficher une image autre en tant que curseur lorsque la souris survole la fenêtre.
Est-ce possible, et comment ?

Merci d'avance.

Pages: « Précédente 1 [2]