¿Se puede detectar una colision de un objeto que choque contra un sprite (sin objeto)?
Un saludo.
vos los decis por los tiles del brackground? si es asi podes usar una mascara
La idea era que mi personaje, puede activar o desactivar un campo de energía. Entonces, sin estar activo, los disparos impactan con el personaje, y cuando active el campo de energía, impacten con su sprite. No hago un objeto con el campo de fuerza porque no sigue a suficiente velocidad al personaje y se desnivela, pero sí lo hace si solamente es un sprite con Draw. Entonces, hay alguna manera de que los disparos detecten un Sprite , (no una máscara)?
hay una funciones de colisiones con punto, con cuadrados, con elipses y círculos. la función empieza con collision, vos a este sprite lo creaste en el mismo personaje o aparte?
Mi personaje está aparte. El campo lo activo o lo desactivo.
Si el campo está activado: "draw" un sprite que sigue al personaje (no un objeto), solamente un sprite. Entonces quiero que los disparos detecten a este sprite y no a mi personaje.
CUando el campo está desactivado, los disparos solo van a detectar la mascara de mi personaje.
Entonces cómo haría para que esos disparos solamente detectarán al Sprite adicional que se centra en mi personaje y que es más grande?
El problema es este:
Cita de: francordoba en Enero 22, 2013, 03:47:18 PMNo hago un objeto con el campo de fuerza porque no sigue a suficiente velocidad al personaje y se desnivela,
¿Qué código probaste para hacer que el objeto siga al personaje? ¿"Se desnivela", cómo exactamente? Probá ponerle al campo de fuerza un depth menor que al personaje.
Cuando lo hice en objeto escudo_obj, en Step le puse :
move_towards_point(x+0,y+0,50);
la velocidad es demasiada pero, mi personaje vuela, y si "cae", lo hace a una velocidad muy superior entonces he de ponerle mucha velocidad al objeto escudo. Y si le ponía demasiada, vibraba y hacía cosas raras. No lo seguía fielemente como si se tratara solo de un sprite puesto con un Draw desde otro objeto. Pero claro, entonces solamente es un simple grafico, por lo tanto quería saber como hacer colisiones con sprites.
move_towards_point es para que el objeto se vaya moviendo hasta el destino. Poné esto:
[gml]x = objPersonaje.x;
y = objPersonaje.y;[/gml]
Cambiá objPersonaje por el nombre del objeto personaje.
Lo acabo de probar, lo sigue muy bien y funciona como yo quería, parando los proyectiles enemigos, pero, cuando mi personaje cae a distancias altas y se acelera en la caída mucho, el escudo sufre un pequeño retraso al seguirlo. Alguna solución?
lo tenes que compensar utilizando la velocidad de caída y eso es poniéndole una variable en la función de move_towards_point(x+0,y+0,velocidad); y con respecto a:
x = objPersonaje.x;
y = objPersonaje.y;
ojo que en el caso de que el personaje o jugador se destruya y en el momento preciso activas el escudo te saltara un error debido que no puede tomar las coordenadas de algo que ya no existe
Cita de: francordoba en Enero 22, 2013, 09:29:00 PM
Lo acabo de probar, lo sigue muy bien y funciona como yo quería, parando los proyectiles enemigos, pero, cuando mi personaje cae a distancias altas y se acelera en la caída mucho, el escudo sufre un pequeño retraso al seguirlo. Alguna solución?
solo pon el script que te dice wadk en el evento "end step".
Funciona. Con EndStep si que funciona y no se descoordina.
Gracias a todos.