#0 

18-04-2007 12:23:55

Scalpweb
Petit nouveau
Date d'inscription: 16-04-2007
Messages: 6

Bonjour.

J'ai utilisé l'exemple suivant :

http://irrlichtnetcp.sourceforge.net/in … _:_Terrain

Mais je ne sais pas comment utiliser le Selector.

Je m'explique :

Mon but est de permettre à l'utilisateur de modifier le terrain : par exemple, on applique une texture ou on creuse là où il clique.
J'imagine que pour savoir où l'utilisateur clique, il faut utiliser le Selector, mais je ne sais pas faire...

Voilà, merci,

@+

Hors ligne


#1 

18-04-2007 12:32:11

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

Pour plus de détails sur les triangle selector : http://irrlichtnetcp.sourceforge.net/in … _Collision

Mais personnellement, je ne procèderais pas comme ça.
Je lancerais un rayon depuis le centre de la caméra passant par la position de la souris et récupèrerais le point où ce rayon entre en collision avec le terrain.

Ainsi j'aurais plus qu'a convertir cette position 3D en position 2D et je pourrais éditer directement la heightmap.

C'est la méthode du "picking"

Hors ligne


#2 

18-04-2007 15:17:09

Scalpweb
Petit nouveau
Date d'inscription: 16-04-2007
Messages: 6

lol bah oui biensur...

J'ai pas fait math sup moi hein ;-)

Hors ligne


#3 

18-04-2007 15:54:32

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Bien alors premièrement il nous faut créer une droite qui représentera ce qui est pointé par la souris.
Pour cela, se servir de SceneManager.SceneCollisionManager.GetRayFromScreenCoordinates
Tu lui passe en paramètre la position de ta souris (retournée via la classe IrrlichtDevice), et la caméra utilisée.

Avec ça tu as ta droite (enfin ta ligne mais dans notre cas on la gèrera comme une droite).
Puis, tu es un utilisateur sérieux d'Irrlicht .NET CP donc tu as utilisé le SVN et téléchargé la version que je viens d'uploader à l'instant même, tu parcours ton terrain (enfin ses triangles plutôt) et pour chaque triangle tu fais Triangle.GetIntersectWithLine(rayon retourné tout à l'heure), s'il te retourne true, c'est que c'est ce triangle qui est sélectionné et là bingo.

Maintenant tu te heurtes sûrement à un problème : le TerrainSceneNode d'Irrlicht est très mauvais, lourd, lent et inmodifiable.
Est-ce la fin du monde ? Nenni, je te conseille d'étudier en détail l'exemple CustomSceneNode du SDK du fameux wrapper, et d'essayer de t'en inspirer pour créer ta propre SceneNode de terrain. Si tu as un peu de courage tu obtiendras un résultat plus rapide, plus efficace et beaucoup plus sympatique qu'à essayer de trifouiller le TerrainSceneNode.


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#4 

18-04-2007 19:53:57

Scalpweb
Petit nouveau
Date d'inscription: 16-04-2007
Messages: 6

Ok ok ok.

Merci bien.

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
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
24 invités en ligne
Aucun membre connecté
RSS Feed