Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Mgbu en Abril 22, 2012, 03:24:39 PM

Título: Obtener ID con place_meeting
Publicado por: Mgbu en Abril 22, 2012, 03:24:39 PM
Cómo hago para que place_meeting me devuelva la ID de la instancia? Yo uso esto:

bala=place_meeting(x,y,obj_arma_bala)
if bala<>-4 and inmune=0
{
codigo....
with bala instance_destroy()
}


Pero me devuelve 1 o 0 (lo que me borra la instancia 1, en mi caso el suelo XD)
Título: Re:Obtener ID con place_meeting
Publicado por: Jucarave en Abril 22, 2012, 07:37:31 PM
por que no usas collision_point(x,y,obj,prec,notme)? te devuelve el id de la instancia:

bala=collision_point(x,y,obj_arma_bala,1,0)
if (bala<>-4 and inmune=0){
    codigo....
    with bala instance_destroy()
}



Saludos.
Título: Re:Obtener ID con place_meeting
Publicado por: Mgbu en Abril 22, 2012, 08:11:47 PM
Lo que pasa es que quería chequear colisiones desde step, se me hace mucho mas facil programar
La otra sería hacer un evento colision y usar other, pero quiero hacerlo en step
Título: Re:Obtener ID con place_meeting
Publicado por: ferhand en Abril 23, 2012, 04:26:35 PM
Saludos Amigo Mgbu:


   Hay un algoritmo para determinar colisiones llamado "teorema de separación de los ejes" o algo así.  :D

   Está orientado para trabajar con vectores y matrices, pero siempre se pueden utilizar artilugios matemáticos. Puede que resulte algo difícil de entender al principio, pero es muy fácil y creo que será bastante eficiente.  :D

  En cuanto termine el proyecto que estoy realizando, comenzaré otro que requiere colisiones rápidas y exactas. Ya estoy estudiando el algoritmo, por eso te lo recomiendo.  ;)

  Gracias por la atención prestada y disculpen las molestias ocasionadas.  ;D
Título: Re:Obtener ID con place_meeting
Publicado por: Texic en Abril 23, 2012, 10:08:30 PM
Place meeting por si solo no la devuelve, pero podés dar vuelta el código
bala=-4
with all {if place_meeting(x,y,other) and object_index=obj_arma_bala {other.bala=id}}
if bala<>-4 and inmune=0
{
codigo....
with bala instance_destroy()
}
Título: Re:Obtener ID con place_meeting
Publicado por: Mgbu en Abril 23, 2012, 10:17:30 PM
Cita de: Texic en Abril 23, 2012, 10:08:30 PM
Place meeting por si solo no la devuelve, pero podés dar vuelta el código
bala=-4
with all {if place_meeting(x,y,other) and object_index=obj_arma_bala {other.bala=id}}
if bala<>-4 and inmune=0
{
codigo....
with bala instance_destroy()
}
Anda perfecto :D
Exactamente lo que buscaba
Título: Re:Obtener ID con place_meeting
Publicado por: romon_28 en Abril 23, 2012, 11:25:49 PM
bala=instance_place(x,y,obj_arma_bala)

if bala!=-4 and inmune=0
{
codigo....
with bala instance_destroy()
}
Título: Re:Obtener ID con place_meeting
Publicado por: Texic en Abril 23, 2012, 11:45:14 PM
Me había olvidado de esa función, usala que es más eficaz que el código que te di =P
Título: Re:Obtener ID con place_meeting
Publicado por: Mgbu en Abril 24, 2012, 10:34:32 PM
Cita de: romon_28 en Abril 23, 2012, 11:25:49 PM
bala=instance_place(x,y,obj_arma_bala)

if bala!=-4 and inmune=0
{
codigo....
with bala instance_destroy()
}
Justo lo que esperaba que haga place_meeting XD
Gracias!