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

Moteurs 3D Discussion :

Déplacer une caméra FPS avec le curseur au milieu de l'écran c'est possible ?


Sujet :

Moteurs 3D

  1. #1
    Invité
    Invité(e)
    Par défaut Déplacer une caméra FPS avec le curseur au milieu de l'écran c'est possible ?
    Salut

    bon alors je fais ma propre caméra de type FPS. Mais le curseur de la souris n'est pas fixé donc il se déplace avec la caméra. Donc je voulais savoir s'il était possible de fixer le curseur au milieu de l'écran et de pouvoir bouger la caméra avec le curseur justement. Non parce que s'il est fixé ben on peut pas le bouger du coup. J'ai bien pensé à récupérer la position relative du curseur mais la caméra ne fait que "trembler" et ne se déplace pas franchement.

    Je suis sous Irrlicht

    PS:Et je précise que je ne veut pas utiliser la caméraFPS par défaut de Irrlicht.

    merci

    ++

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Salut, pourquoi utiliser le curseur de la souris dans un FPS ? l'usage habituel serait plutot de le cacher et d'afficher un quad avec la texture d'un viseur au centre de l'écran. Pour déplacer ta caméra tu t'en fiche de la position de ton curseur a l'écran, ce qui compte c'est le déplacement de la souris à chaque frame.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut, pourquoi utiliser le curseur de la souris dans un FPS ? l'usage habituel serait plutot de le cacher et d'afficher un quad avec la texture d'un viseur au centre de l'écran.
    C'est ce que je fais déja ca. Cacher le curseur et mettre une cible.C'est déja fait.

    Pour déplacer ta caméra tu t'en fiche de la position de ton curseur a l'écran, ce qui compte c'est le déplacement de la souris à chaque frame.
    Ben pour déplacer la caméra j'ai forcément besoin de la position du curseur. Tu veu dire récupérer le déplacement de la souris indépendemment du curseur ? C'est possible ca ? Si oui tu peux me dire comment ?
    Dernière modification par TanEk ; 21/12/2008 à 10h41. Motif: trop de lolage

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Bah je sais pas avec Irrlicht (jamais testé) mais avec SDL par exemple tu peux récuperer le déplacement relatif de la souris a chaque frame indépendamment de la position du curseur. Tu utilises ce déplacement relatif pour orienter ta caméra et ca fonctionne très bien.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bah je sais pas avec Irrlicht (jamais testé) mais avec SDL par exemple tu peux récuperer le déplacement relatif de la souris a chaque frame indépendamment de la position du curseur. Tu utilises ce déplacement relatif pour orienter ta caméra et ca fonctionne très bien.
    Relis bien mon premier message. Je précise que j'avais deja essayé de récupérer les déplacements relatifs

    J'ai bien pensé à récupérer la position relative du curseur mais la caméra ne fait que "trembler" et ne se déplace pas franchement.
    Par contre tu dis un truc interressant c'est "a chaque frame". Tu incrémente le déplacement relatif a chaque frame ? Peut tu me donner ta méthode ? Je connais un peu SDL (ca fait longtemps mais bon...)

    ++

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    pour un deplacement style FPS je fais ca en SDL :

    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
    30
     
    const float CAMERA_ROT_FACTOR = 0.05f;
     
    //..
     
    while(true)
    {
        while (SDL_PollEvent(&event))
        {
     
        // blablabla
     
            if (event.type == SDL_MOUSEMOTION)
            {
                angleY += event.motion.xrel * CAMERA_ROT_FACTOR;
                angleX += event.motion.yrel * CAMERA_ROT_FACTOR;
                angleX = min(90.0f,max(-90.0f,angleX)); // histoire d'éviter de passer la tête entre mes jambes
            }
        }
     
        // blablabla
     
        //rendering
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();                       
        glRotatef(angleX,1.0f,0.0f,0.0f);
        glRotatef(angleY,0.0f,1.0f,0.0f);
        glTranslate(blabla)
         // je rend mon univers
    }
    et ca fonctionne tres bien. Le curseur est caché je m'en occupe pas, seul le déplacement relatif est utilisé.

    Comme tu vois en SDL il y a xrel et yrel qui sont updaté a chaque mouvement de la souris en plus de x et y. x et y te donne la position et xrel et yrel te donne le déplacement de la souris depuis le dernier evenement SDL_MOUSEMOTION.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  7. #7
    Invité
    Invité(e)
    Par défaut
    Oui je vois en fait c'est ce que je faisait moi meme. Le prob c'est que j'ai l'impression que pour Irrlicht curseur=souris. Les déplacements absolue et relatif ne sont pas ceux de la souris mais ceux du curseur. J'ai beau fouillé l'aide de fond en comble. Irrlicht associe constemment la souris et le curseur. Les mouvements relatifs que propose Irrlicht ne sont pas ceux de la souris mais ceux du curseur a moins que j'ai sauté quelque chose...

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 74
    Points
    74
    Par défaut
    si c est les mouvement relatif du curseur qu'il te donne tu peut relever les coordonnée du curseur puis le recentrer a chaque fois

    c est un peu bidouille ca serai plus propre de relever le mouvement relatif de la souris avec une autre librairie,,genre la sdl ,ou OIS,ou autre,directx?

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/02/2015, 11h43
  2. Réponses: 0
    Dernier message: 11/02/2015, 11h58
  3. déplacer une div qui suit un curseur
    Par freye dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/04/2012, 08h27
  4. Réponses: 2
    Dernier message: 20/08/2008, 10h45
  5. Appel d'une procédure stockée avec un curseur
    Par lapanne dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/12/2006, 16h24

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