Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Problema con la vspeed  (Leído 216 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PaulleXd

  • Visitante
  • *
  • Puntos: 18
  • Mensajes: 7
    • Ver Perfil
en: Noviembre 10, 2018, 11:41:58 pm
Hola amigos, tengo un problema que no puedo solucionar con la vspeed de ciertos objetos.
lo que hago es lo siguiente: hago que varios objetos tengan una vspeed de igual a la de un objeto asi; este es el objeto que controla las velocidades
Código: [Seleccionar]
///nombre RI3_2
vspeed = 0
///vspeed de todos
y luego le asigno el valor de los demas objetos a la velocidad de uno solo
Código: [Seleccionar]
///evento step
RI1_2.vspeed = RI3_2.vspeed
RI2_2.vspeed = RI3_2.vspeed
RC2.vspeed = RIC3_2.vspeed
y hago que cuando el objeto que controla las velocidades choque contra cierto objeto se detengan asi
Código: [Seleccionar]
///en el mismo objeto que controla las velocidad
vspeed = 0
sin embargo los objetos no adoptan la velocidad del objeto que controla las velocidades, intente que todos tuvieran como objeto padre el RIC3_2 pero luego tengo problemas al dibujar sobre los objetos ya que sobre cada objeto tiene un diferente dibujo pero se dibujan sobre el padre, gracias por su ayuda
« última modificación: Noviembre 10, 2018, 11:47:26 pm por PaulleXd »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado BssString

Respuesta #1 en: Noviembre 11, 2018, 02:20:34 am
Hola PaulleXd

El problema es que los objetos "hijos" (por así decirlo) están copiando la velocidad de dos objetos diferentes, cuidado con los nombres.
"RI3_2" y "RIC3_2", usa uno único, ejemplo "RIC3_2".
Lo otro que puede causar el error, es que tengas más de un "RIC3_2" en la room, entonces le cambias la velocidad a uno, pero los "hijos" están copiando la velocidad de otro con una velocidad diferente.

Como solución se me ocurre que:
En Step pongas:
Código: [Seleccionar]
RI1_2.vspeed = RIC3_2.vspeed
RI2_2.vspeed = RIC3_2.vspeed
RC2.vspeed = RIC3_2.vspeed

Y en la colisión cambiar la vspeed de TODOS los RIC3_2 (por si hay más de 1 en la room):
Código: [Seleccionar]
with (RIC3_2) { vspeed = 0; }
Entonces en el próximo step, todos los objetos indicados en el step, copiarán la velocidad cero.

Tu solución de hacer un Objeto Padre también sirve.
Puedes crear un objeto nuevo llamado "control_velocidad" (o como sea) y que sea padre de todos los demás, así usas "control_velocidad.vspeed = 0" y todos los hijos tomarán velocidad cero.
Según yo, el código del hijo sobre-escribe el del padre, así que no debería afectar en el draw event.
Simplemente anda a cada objeto que quieres que sea "hijo" y en la casilla "Parent", le pones "control_velocidad" (o como le hayas puesto al objeto)

Saludos

 
Los siguientes usuarios dieron las gracias a este tema: PaulleXd


Desconectado PaulleXd

  • Visitante
  • *
  • Puntos: 18
  • Mensajes: 7
    • Ver Perfil
Respuesta #2 en: Noviembre 11, 2018, 04:28:57 am
Muchisimas gracias amigo llevo 2 dias con este problema y me ha quedado perfectisimo para lo que queria lograr con este efecto de detener varios objetos, repito muchas gracias