#0 

27-11-2007 18:13:56

blibsnake
Petit nouveau
Date d'inscription: 27-11-2007
Messages: 6

Bonjour tout le monde

J'ai un petit souci avec la fonction getPosition() de la classe ICursorControl.

je recupere mon curseur sans probleme mon pointeur est bon...

mais quand je fais un getPosition il me ressort quelques choses du genre :
X : 49000000 et Y:11

quand je bouge le curseur le X bouge entre 3 valeurs c'est tout.

Je possede une cameraFPS, est ce qu'il peut y avoir une incompatibilité entre les deux..

merci d'avance

Hors ligne


#1 

27-11-2007 19:11:26

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

Si mes souvenirs sont bon, la camera fps lock le curseur au milieu donc peut être que ça fou le bazard, as-tu essayé avec une camera toute simple pour voir si le getPosition renvoyai une valeur correcte ?


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#2 

27-11-2007 19:15:48

blibsnake
Petit nouveau
Date d'inscription: 27-11-2007
Messages: 6

la camera fps bloque le curseur au centre... j'ai testés avec une camera Maya, et je crois que j'avais le même souci, mais pas sur à 100%

Hors ligne


#3 

28-11-2007 11:13:38

blibsnake
Petit nouveau
Date d'inscription: 27-11-2007
Messages: 6

J'ai testés avec une camera classique, et même sans caméra. J'ai toujours des valeurs du getPosition qui sont fausses...

est ce quelqu'un a une idée.

j'ai la version d'irrlicht 1.3.1, si ça peut aider...

merci d'avance

Hors ligne


#4 

28-11-2007 12:57:37

Kevin Leonhart
Membre
Date d'inscription: 07-01-2007
Messages: 33
Site web

Fais voir le code.

Hors ligne


#5 

28-11-2007 14:58:37

blibsnake
Petit nouveau
Date d'inscription: 27-11-2007
Messages: 6

voila le code moins tout ce qui ne doit pas poser de soucis...

Code:

#include <irrlicht.h>
#include <iostream>

using namespace irr;

using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#pragma comment(lib, "Irrlicht.lib");

IrrlichtDevice *device = 0;
ISceneManager* smgr =0;
IVideoDriver* driver =0;




int main() {
 
    
    device = createDevice(EDT_OPENGL,dimension2d<s32>(800,600),16, false,true,false,0);    
    
    smgr = device->getSceneManager();    
    driver = device->getVideoDriver();    
    IGUIEnvironment* env = device->getGUIEnvironment();
    
    driver->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT, true);
    

   
    
    ISceneNode* marqueur1 = smgr->addSphereSceneNode(100,16,0,1001,vector3df(0,1000,0),vector3df(0, 0, 0),vector3df(1.0f,10.0f, 1.0f));
    marqueur1->setMaterialTexture(0, driver->getTexture("Texture/rouge.bmp"));


    ISceneNode* marqueur2 = marqueur1->clone(0,smgr);  marqueur2->setID(1002);
    ISceneNode* marqueur3 = marqueur1->clone(0,smgr);  marqueur3->setID(1003);
    ISceneNode* marqueur4 = marqueur1->clone(0,smgr);  marqueur4->setID(1004);
    ISceneNode* marqueur5 = marqueur1->clone(0,smgr);  marqueur5->setID(1005);
    ISceneNode* marqueur6 = marqueur1->clone(0,smgr);  marqueur6->setID(1006);
    ISceneNode* marqueur7 = marqueur1->clone(0,smgr);  marqueur7->setID(1007);
    ISceneNode* marqueur8 = marqueur1->clone(0,smgr);  marqueur8->setID(1008);
    ISceneNode* marqueur9 = marqueur1->clone(0,smgr);  marqueur9->setID(1009);
    
    marqueur1->setPosition (vector3df(finX-404794.0f,1000,finY-342999.0f));
    marqueur2->setPosition (vector3df(finX-401461.0f,1000,finY-344706.0f));
    marqueur3->setPosition (vector3df(finX-407327.0f,1000,finY-344305.0f));
    marqueur4->setPosition (vector3df(finX-407640.0f,1000,finY-337136.0f));
    marqueur5->setPosition (vector3df(finX-401951.0f,1000,finY-335944.0f));
    marqueur6->setPosition (vector3df(finX-398475.0f,1000,finY-345876.0f));
    marqueur7->setPosition (vector3df(finX-406312.0f,1000,finY-348221.0f));
    marqueur8->setPosition (vector3df(finX-413298.0f,1000,finY-339334.0f));
    marqueur9->setPosition (vector3df(finX-398516.0f,1000,finY-336787.0f));

    
    // add camera
    ICameraSceneNode* camera =     smgr->addCameraSceneNodeFPS(0,100.0f,5000.0f);
    camera->setPosition(vector3df(0.0f,4000.0f,0.0f));
    camera->setTarget(vector3df(xTarget,0.0f,zTarget);
    camera->setFarValue(100000.0f);
   

     while(device->run()) {
        if (device->isWindowActive())
        {
            driver->beginScene(true, true, SColor (255,255,255,255) );    
            smgr->drawAll();
            env->drawAll();            
            driver->drawStencilShadow ();            
            driver->endScene();
            
             

            ICursorControl * cursor = device->getCursorControl();

        
    position2di posCursor = device->getCursorControl()->getPosition();


    //   position2di posCursor = position2di(400,300);      --> si j'active cet ligne la détection de la ligne d'en dessous fonctionne
                        
                        
            ISceneNode *node = smgr->getSceneCollisionManager()->getSceneNodeFromScreenCoordinatesBB(posCursor);
           
        }
}    

device->drop();
    
return 0;

}

est ce que vous voyez quelque chose qui ferait que ça ne marche pas...

Hors ligne


#6 

30-11-2007 10:44:39

blibsnake
Petit nouveau
Date d'inscription: 27-11-2007
Messages: 6

Pas de réponse personne ne sait..

à priori ça ne doit pas venir de la caméra masi du cursor...

lorsque je fais :
device->getCursorControl()->setVisible(false);

qui est censés rendre le curseur invisible, le programme plante au lancement..

doit on faire autres choses avant le getCursolControl.??

Hors ligne


#7 

01-12-2007 11:12:57

Kevin Leonhart
Membre
Date d'inscription: 07-01-2007
Messages: 33
Site web

Oups, j'avais carrément oublié ton post, désolé...

Pour tout tes variables marqueurs, tu devrais faire un tableau.


Là tu récupère un pointeur :

Code:

ICursorControl * cursor = device->getCursorControl();

Mais tu ne t'en sers pas juste en dessous.


lorsque je fais :
device->getCursorControl()->setVisible(false);

qui est censés rendre le curseur invisible, le programme plante au lancement..


As tu essayé d'utiliser le déboggeur là dessus ?


Code:

#pragma comment(lib, "Irrlicht.lib");

Ca n'est pas portable. Selon le compilateur ça peut marcher ou pas.

Hors ligne


#8 

02-12-2007 11:46:27

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

Salut !

Même si ce n'est pas forcément ce que tu cherche : moi ça marche avec irrlicht 1.2/1.3.1/1.4 sur DevCPP et Code::Block

Déclaration de variable :

s32 postionX, postionY;

Dans la boucle principal :

positionX = device->getCursorControl()->getPosition().X;//On recupere
positionY = device->getCursorControl()->getPosition().Y;//les position XY

C'est peut êtres "sale" et lourd, mais plus maniable je trouve. (et surtout ça marche, bien que je n'est pas essayer autre chose wink)

Essaye au moins voir si c'est ton compiler qui a du mal...

a+
w

EDIT : bon, mes truc ne servent a rien en faite (je vient de piger ton code ><)
Essaye de mettre ton "device->getCursorControl()->getPosition()"

device->run()
ICI
smgr->drawAll();
env->drawAll();   

idem pour le setVisible

Ca changera surement rien mais moi c'est la qu'ils se trouvent et ça marche...

a+
w

Dernière modification par Willikus (02-12-2007 11:51:51)


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#9 

03-12-2007 09:50:35

blibsnake
Petit nouveau
Date d'inscription: 27-11-2007
Messages: 6

Pour la déclaration du pointeur cursor, ça ne servait que pour l'afficher, donc il est virer..


ensuite pour le setVisible, lorsqu'il plante j'ai ça

An Exception 'Unhandlel Win32 Exception' has occured il gdb.exe.

However, no debuggers are registered thaht can debug this exception. Unable to JIT debug


gdb.exe c'est quoi comme programme..??

si c'est erreur vous dit quelques choses...

Hors ligne


#10 

03-12-2007 15:50:52

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

gdb.exe c'est quoi comme programme..??


Le debuggeur de GCC (et donc de MinGW)

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
28 invités en ligne
Aucun membre connecté
RSS Feed