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
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
Hors ligne
Comment peut-on repositionner sans setPosition?
Hors ligne
Utilise setWorld() pour lui donner un triangle selector vide et tu le réutilise pour remettre correctement après.
Hors ligne
Le débogeur ne reconnait pas la fonction setWorld().
Hors ligne
Ta collision doit etre créée avec ceci avec irr::scene::ISceneNodeAnimatorCollisionResponse au lieu de irr::scene::ISceneNodeAnimator.
Donc tu remplace :
Par :
Tu peux maintenant utiliser la fonction setWorld().
Hors ligne
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
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.
Hors ligne
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.
Dernière modification par johnplayer (13-08-2009 21:35:55)
Hors ligne