#1 

27-11-2007 17:13:56

blibsnake
Membres
Date d'inscription:
Messages: 6
IP: 90.52.41.18
Courriel

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


#2 

27-11-2007 18:11:26

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 90.5.156.159
Courriel  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


#3 

27-11-2007 18:15:48

blibsnake
Membres
Date d'inscription:
Messages: 6
IP: 90.52.41.18
Courriel

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


#4 

28-11-2007 10:13:38

blibsnake
Membres
Date d'inscription:
Messages: 6
IP: 62.147.250.60
Courriel

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


#5 

28-11-2007 11:57:37

Kevin Leonhart
Membres
Date d'inscription:
Messages: 33
IP: 83.198.99.21
Courriel  Site web

Fais voir le code.


Hors ligne


#6 

28-11-2007 13:58:37

blibsnake
Membres
Date d'inscription:
Messages: 6
IP: 62.147.250.60
Courriel

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

#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


#7 

30-11-2007 09:44:39

blibsnake
Membres
Date d'inscription:
Messages: 6
IP: 62.147.250.60
Courriel

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


#8 

01-12-2007 10:12:57

Kevin Leonhart
Membres
Date d'inscription:
Messages: 33
IP: 90.34.164.137
Courriel  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 :

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 ?


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

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


Hors ligne


#9 

02-12-2007 10:46:27

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.220.133.132
Courriel  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


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#10 

03-12-2007 08:50:35

blibsnake
Membres
Date d'inscription:
Messages: 6
IP: 62.147.250.60
Courriel

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


#11 

03-12-2007 14:50:52

Aranoth
Membres
Avatar de Aranoth
Date d'inscription:
Messages: 242
IP: 194.140.247.254
Courriel  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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
125 invités en ligne
membre en ligne: -
RSS Feed