Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: francordoba en Enero 22, 2013, 07:16:34 AM

Título: Detectar colision con sprite(RESUELTO)
Publicado por: francordoba en Enero 22, 2013, 07:16:34 AM
¿Se puede detectar una colision de un objeto que choque contra un sprite (sin objeto)?

Un saludo.

Título: Re:Detectar colision con sprite
Publicado por: MatuX en Enero 22, 2013, 03:20:02 PM
vos los decis por los tiles del brackground? si es asi podes usar una mascara
Título: Re:Detectar colision con sprite
Publicado por: francordoba en Enero 22, 2013, 03:47:18 PM
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)?
Título: Re:Detectar colision con sprite
Publicado por: MatuX en Enero 22, 2013, 04:07:13 PM
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? 
Título: Re:Detectar colision con sprite
Publicado por: francordoba en Enero 22, 2013, 04:11:18 PM
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?
Título: Re:Detectar colision con sprite
Publicado por: Wadk en Enero 22, 2013, 06:24:19 PM
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.
Título: Re:Detectar colision con sprite
Publicado por: francordoba en Enero 22, 2013, 06:54:14 PM
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.
Título: Re:Detectar colision con sprite
Publicado por: Wadk en Enero 22, 2013, 08:09:03 PM
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.
Título: Re:Detectar colision con sprite
Publicado por: 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?
Título: Re:Detectar colision con sprite
Publicado por: MatuX en Enero 22, 2013, 09:36:08 PM
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   
Título: Re:Detectar colision con sprite
Publicado por: brunoxzx en Enero 22, 2013, 09:39:27 PM
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".
Título: Re:Detectar colision con sprite
Publicado por: francordoba en Enero 22, 2013, 10:02:47 PM
Funciona. Con EndStep si que funciona y no se descoordina.

Gracias a todos.