begin process at 2012 05 30 22:49:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Viseur de la souris ( crosshair )


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Viseur de la souris ( crosshair )

samedi 11 juin 2005 à 01:25:52 | Viseur de la souris ( crosshair )

DarkBoss

Salut,
j' ai besoin d' aide pour mon crosshair,
j' ai fait un pti moteur 3d avec vue souris, chargement de texture .tga,
chargement d' objet perso etc
et tout cela marche mais je n' arrives toujours pas a avoir un viseur tout simple a la con lol : quand je bouge ma souris la vue est rotaté et quand j' affiche un quad sous le curseur et bien celui ci rotate aussi, quand j' utilise glVertex2f a la place de glVertex3f et bien le quad se trouve au dessus de moi
pfff c lourd a la fin j' ai écumer le net a la recherche d' un tutorial mais tres peux traitent de ce sujet, et ce qui le font ne m' eclairent pas, j' ai meme regarder des sources cppfrance mais rien n' y fait
donc je voudrais savoir:
Est-il possible de définir une matrice qui ne peut ëtre rotationnée ?
merci pour l' aide

DarkBoss
samedi 11 juin 2005 à 15:26:34 | Re : Viseur de la souris ( crosshair )

Pamaury

il faut tout simplement que tu passe en 2D au moment d'afficher le crosshair .
    // on passe en mode matrice pour la projection
    glMatrixMode(GL_PROJECTION);
    // on remet la matrice à l'identité
    glLoadIdentity();
    // vue 2D à la taille de l'écran
    gluOrtho2D(0,1.0,1.0,0);
    // on repasse en mode matrice modélisation
    glMatrixMode(GL_MODELVIEW);
    // remet la matrice à l'identité
    glLoadIdentity();

ensuite tu affiche le crosshair:
si tu as une texture avec une couche alpha tu fais tout simplement

glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0);
glVertex2f(0.0,0.0);
glTexCoord2f(1.0,0.0);
glVertex2f(1.0,0.0);
glTexCoord2f(1.0,1.0);
glVertex2f(1.0,1.0);
glTexCoorf2(0.0,1.0);
glVertex3f(0.0,1.0);
glEnd();

au passage si tu doit afficher tu texte tu peux le faire maintenant que tu as en 2D . Si tu veux faire une translation il suffit que faire
glTranslatef(cx,cy,0.0);
tu peut aussi faire une rotation sur un axe .
Il faut aussi désactiver le ZBUFFER et le LIGHTING .

A m a u r y
dimanche 12 juin 2005 à 11:39:14 | Re : Viseur de la souris ( crosshair )

DarkBoss

ok merci je vais essayer

DarkBoss
dimanche 12 juin 2005 à 11:55:20 | Re : Viseur de la souris ( crosshair )

DarkBoss

par contre apres fo t'il remettre la vu de depart ?


DarkBoss
dimanche 12 juin 2005 à 12:24:16 | Re : Viseur de la souris ( crosshair )

Pamaury

oui
il faut refaire un truc comme gluPerspective ou glOrtho

A m a u r y
dimanche 12 juin 2005 à 12:28:36 | Re : Viseur de la souris ( crosshair )

DarkBoss

ok merci

DarkBoss
dimanche 12 juin 2005 à 13:13:04 | Re : Viseur de la souris ( crosshair )

DarkBoss

c tout con mais il y a t'il une fonction pour sauvegarder la vu et la remettre a l' identique apres ?

DarkBoss
dimanche 12 juin 2005 à 14:16:42 | Re : Viseur de la souris ( crosshair )

Pamaury

Réponse acceptée !
oui on peut je pense:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(...);// ou autre chose
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// on affiche tout en 3D
......
// on passe en 2D
glMatrixMode(GL_PROJECTION);
// on remet la matrice à l'identité
glLoadIdentity();
// vue 2D à la taille de l'écran
gluOrtho2D(0,width,height,0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// on affiche tout en 2D
.....
//
glMatrixMode(GL_PROJECTION);
glPopMatrix();
// on a de nouveau la matrice de vue 3D
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Il faudrait tester

A m a u r y
dimanche 12 juin 2005 à 14:31:53 | Re : Viseur de la souris ( crosshair )

DarkBoss

merci de ton aide precieuse
ça fonctionne a merveille maintenant
voici mon code :
void Draw(){
     Lampe.setlight();
     Lampe.open();
     glDisable(GL_LIGHTING);
     glDisable(GL_DEPTH_TEST);
     glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
     gluPerspective(45.0f,(GLfloat)wdth/(GLfloat)hght,0.1f,100.0f);
     glPushMatrix();
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
     glEnable(GL_DEPTH_TEST);
     objCamera.lookAt();
     grid();
     glEnable(GL_LIGHTING);
     glEnable(GL_TEXTURE_2D);
     glPushMatrix();
     glColor3d(0.0, 0.0, 0.0);
     glPopMatrix();
     Draw_World("level1.lvl");
     glDisable(GL_TEXTURE_2D);
     glDisable(GL_LIGHTING);
     glMatrixMode(GL_PROJECTION);
     // on remet la matrice à l'identité
     glLoadIdentity();
     // vue 2D à la taille de l'écran
     gluOrtho2D(0,wdth,hght,0);
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
     // on affiche tout en 2D
    draw_cible();
    //
    glMatrixMode(GL_PROJECTION);
    glPopMatrix();
    // on a de nouveau la matrice de vue 3D
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

DarkBoss
dimanche 12 juin 2005 à 14:33:43 | Re : Viseur de la souris ( crosshair )

DarkBoss

lol nan mon code est pas bon mé le tiens l' est

DarkBoss

1 2

Cette discussion est classée dans : chargement, vue, souris, viseur, crosshair


Répondre à ce message

Sujets en rapport avec ce message

windows et la souris [ par dletozeun ] bonjour, Dans un programme utilisant Opengl, j'essais d'utiliser la souris afin de bouger la vue de la camera. La vue bouge tres bien sauf que des qu Problème de chargement de DLL [ par tophque ] Bonjour,Je travaille sur un programme multi-thread. Je dois charger une dll. Que l'on soit en mode Debug ou Release, le problème est identique. Si je Chargement de fichier OBJ [ par SAKingdom ] Salut. J'aimerais savoir comment charger des fichiers OBJ pour OpenGL. Si vous connaissez des sites de tutoriaux qui pourrais me dire comment faire, c MFC visual c++ : comment recupérer les coordonnées da la souris [ par hao21 ] Bonjour.j'aurai aimé savoir comment faire pour récupérer les coordonnées de la souris sur la fenetre quand on clique, pour que lorsque l'on clique sur Curseur de la souris... [ par dbiare ] Bonjour, Je travail sous Visual C++6. Dans mon application, j’ai une boite de dialogue et parallèlement j’ai un ‘Thread’ qui tourne en tache de fond. Pb de boite de dialogue [ par ketchupy45 ] Bonjour, je suis sous visual en MFC. J'ai une vue derivant de CScrollView. Dans mon menu j'ai un item dont le gestionnaire est dans le doc. Celui-ci l Fenetre de chargement [ par lisandru ] Bonjour à tous, Alors voila, je charge une fenetre qui liste des entrées(trés nombreuses) dans un fichier afin de créer un treecontrol.Malheureusemen Position souris sur un bouton avec vc++6 [ par hadrien1 ] Bonjour, Voila j'ai fabriqué une classe CBtButton dérivé de CButton, j'ai ajouté aussi la gestion du message WM_MOUSEMOVE jusque la impecable. J'ai Probleme souris et clavier avec opengl et glut [ par Mick7 ] Salut, bon voila en faite c'est juste un probleme de fluidité quand j'essaye de tourner ou marcher tout va bien ca marche nickel mais si j'essaye de f SDL getion de souris [ par imadonline ] slt tout le monde,g pa trouvé la ou apprendr la gestion de souri en SDL g besoin de votr aid


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales