11-08-2009 13:24:25
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 81.251.140.79
- Courriel
Bonjours,
Voila ma caméra est "enfermé" dans une pièce. La collision est géré avec la camera et les murs pièce (avec createCollisionResponseAnimator ). Mais je voudrai que quand la caméra arrive à un certain endroit la caméra soit téléporté hors de la salle. Le porblème c'est quand je veux faire "téléporter" la caméra en la mettant hors de la pièce (avec setPosition), la caméra ne dépassepas le mur de la salle car il y a une collision. Donc je me demandais comment on pouvait créer une téléportation de la caméra et qui passe a travers les murs ?
Hors ligne
11-08-2009 16:30:43
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.254.214
- Courriel
Si c'est pour une téléportation, pourquoi ne pas détruire ta camera, et en re-créer une à l'endroit souhaité, ou encore tous simplement la repositionner à l'autre endroit. Ou alors tu passe par une translation amenant ta camera à un autre endroit, mais ce n'est plus de la
téléportation, mais un 'passe-muraille', et c'est un autre problème ![]()
Force et sagesse...
Hors ligne
11-08-2009 20:25:02
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 81.251.140.79
- Courriel
Comment peut-on repositionner sans setPosition?
Hors ligne
11-08-2009 20:27:33
- johnplayer
- Membres

- Date d'inscription:
- Messages: 431
- IP: 83.192.83.242
- Courriel
Utilise setWorld() pour lui donner un triangle selector vide et tu le réutilise pour remettre correctement après.
core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."
Hors ligne
12-08-2009 16:12:06
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 81.251.140.79
- Courriel
Le débogeur ne reconnait pas la fonction setWorld().
Hors ligne
13-08-2009 06:38:35
- johnplayer
- Membres

- Date d'inscription:
- Messages: 431
- IP: 83.192.83.242
- Courriel
Ta collision doit etre créée avec ceci avec irr::scene::ISceneNodeAnimatorCollisionResponse au lieu de irr::scene::ISceneNodeAnimator.
Donc tu remplace :
scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(
selector, camera, core::vector3df(30,50,30),
core::vector3df(0,-3,0),
core::vector3df(0,50,0));
selector->drop();
camera->addAnimator(anim);
anim->drop();Par :
scene::ISceneNodeAnimatorCollisionResponse* anim = smgr->createCollisionResponseAnimator(
selector, camera, core::vector3df(30,50,30),
core::vector3df(0,-3,0),
core::vector3df(0,50,0));
selector->drop();
camera->addAnimator(anim);
anim->drop();Tu peux maintenant utiliser la fonction setWorld().
core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."
Hors ligne
13-08-2009 10:07:17
- Kit-fisto24
- Membres
- Date d'inscription:
- Messages: 60
- IP: 81.251.140.79
- Courriel
setWorld() n'est toujours pas reconnu par le débogeur. ![]()
Mais tmyke avait dit qu'on pouvait repositionner la caméra sans utiliser setPosition. Comment faire?
Hors ligne
13-08-2009 16:34:50
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.180.246
- Courriel
Je parlais surtout de libérer les ressources de ta camera pour en recréer une autre à un endroit choisi.
C'est pas très élégant, mais cela peut être une solution en attendant mieux.
Force et sagesse...
Hors ligne
13-08-2009 19:29:02
- johnplayer
- Membres

- Date d'inscription:
- Messages: 431
- IP: 83.192.86.83
- Courriel
Quel version d'irrlicht as-tu? car j'ai regardé dans la doc d'irrlicht 1.5 et 1.4.2 et elle apparait.
Sinon le IScenNodeAnimatorCollisionResponse recoit les events lorsque qu'il est attaché à une camera active. Donc peut etre qu'en basculant sur une autre camera avant le setPosition() puis en la réactivant tu pourrais inhiber la detection de collision durant le transport.
core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."
Hors ligne



