Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
¿Cómo muevo muchas mallas a lo largo de diferentes caminos a la misma velocidad?

Fondo

Estoy creando un juego en el que puedes controlar a varias personas en una comunidad, por lo que, obviamente, las personas deben poder moverse por sí mismas, con sus propias tareas que cumplir. Usé el método descrito en esta publicación sobre cómo mover una malla/objeto a lo largo de una ruta en Three.js . Funcionó como puede ver a continuación, pero todas las personas se mueven a diferentes velocidades entre sí. no quiero esto

ingrese la descripción de la imagen aquí

Pregunta

¿Cómo hago para que todos se muevan a la misma velocidad? Y si tiene una mejor solución sobre cómo mover una malla de un punto a otro, dígame cómo.

PD: En la publicación que vinculé, utilicé la parte de la respuesta "movimiento elegante" .

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

(En caso de que el violín desaparezca, la respuesta anterior usó una variable incrementada lentamente con path.getPointAt(position) para mover los objetos a lo largo de la ruta).

El método Curve.getPointAt toma un valor que es un porcentaje a lo largo de la curva. Debido a este cálculo, la distancia entre los puntos (por ejemplo, 0 y 0.1 ) será diferente según la longitud de la curva.

Entonces, si curve1 tiene 10 units largo y curve2 tiene 100 units de largo, entonces:

 curve1.getPointAt(0.1) // vector 1 unit from the start of curve1 curve2.getPointAt(0.1) // vector 10 units from the start of curve2

Si está basando su movimiento en esto, entonces básicamente el objeto que se mueve a lo largo de curve2 se moverá 10x más rápido que el objeto que se mueve a lo largo de curve1 .

En cambio, lo que desea hacer es determinar cuántos pasos debe tomar el objeto a lo largo de una ruta, dados ciertos "pasos/segundo" o "pasos/fotograma". Esto está más alineado con el concepto de una velocidad física real, en lugar de uno definido por la longitud del camino que se está tomando.

Digamos que desea viajar a 2 units per frame a lo largo de curve1 y curve2 . Ahora que viaja a una tarifa fija, solo necesita dividir la tarifa por la longitud total para obtener la cantidad de "pasos" (o en este caso, marcos) que tomará para llegar al final de la ruta.

 2 / 10 = 0.2 // this is the point polling percentage for curve 1 2 / 100 = 0.02 // this is the point polling percentage for curve 2

Ahora, cuando mueves un objeto a lo largo de curve1 , necesitarás usar path.getPointAt(0.2) , y para curve2 path.getPointAt(0.02) .

Mirando un poco hacia adelante, puede preguntarse qué sucede cuando las matemáticas no se alinean fuera de un ejemplo perfecto y tiene "pasos parciales" adicionales para llegar al final de la curva. Bueno, depende de ti decidir cómo manejarlo. Podría gastar un cuadro adicional para terminar el movimiento, o podría mirar un paso adelante durante el cálculo del movimiento y decidir enviarlo hasta el final.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda