Realidad Virtual
información adicional
jaume ferrer i rosera
21. Scripting: Mover objetos con PlaneSensor con detección de colisiones
Consulta:
¿Cómo disponer de controles que permitan
mediante PlaneSensor desplazar un objeto sin salirse de unos límites
y consiguiendo que detecte cuando atraviesa otros objetos?
Respuesta:
Se han preparado tres ejemplos simples que usan un sencillo script. En esencia
se trata de que con un ROUTE dirigimos las coordenadas que genera el planesensor
hasta una función de javascript que las compara con los límites
del espacio y con los de la caja contenedora de los objetos con los que deseamos
detectar colisiones. Si no se detectan colisiones se reenvían las coordenadas
del planesensor al objeto que queremos mover. En caso contrario podemos no enviar
nada (con lo cual el objeto se detendría) o bien cambiar cualquier otra
cosa de la escena para señalar la colisión, como por ejemplo un
cambio de color.
Funcionan con Cortona pero no con CosmoPlayer, lo siento.
Visualizar plane_2D_1
[movimiento 2D. El planesensor va dentro del propio objeto que
queremos mover]
Código fuente
[si guardáis el archivo de código fuente en vuestro disco duro
y lo editáis con VrmlPad podréis ver el código coloreado]
Visualizar plane_2D_2
[Variante del anterior pero con el planesensor en un objeto
aparte distinto del objeto que queremos mover]
Código fuente
[si guardáis el archivo de código fuente en vuestro disco duro
y lo editáis con VrmlPad podréis ver el código coloreado]
Visualizar plane_3D
[Variante del anterior con movimiento 3D. Hay dos planesensors
(XYZ) asociados a dos objetos]
Código fuente
[si guardáis el archivo de código fuente en vuestro disco duro
y lo editáis con VrmlPad podréis ver el código coloreado]