mi pregunta es, se puede hacer que por ejemplo mi objeto principal detecte si 2 objetos diferentes estan colisionando? para asi cambiar de sprite?
Si se puede.
Gracias.
(ok, mal formulada la pregunta, como seria el codigo?)
if object.place_meetin(x,y,objotro)
object es uno de los que coliciona contra otro.
claro hay varias formas mas de hacerlo.
Edit: ac? hay un error por no revisarlo antes de postear.
Explicare mi error
estoy pidiendo al sistema verifique en el "object" si en su variable de place_meeting colision contra objotro. pero es logico que esta variable no se esta usando en el "object" y no hay cual variable verificar.
lo correcto es usar el with()
if obj_enemy.place_meeting(x,y,obj_normal_atk)
{show_message("ok")}
sale un error: variable name expected
de salir bien este objeto revisaria si esos 2 estan en colision?
Porque aca tenemos un error de sintaxis.
El codigo deberia ser:
[gml]
with Objeto0
{
if place_meeting(x,y,Objeto1)
{
show_message("Colision")
}
}
[/gml]
Adjunto te dejo un ejemplo:
Si tienes alguna duda sobre el ejemplo, pregunta.
perfecto :D solucionado 100%, te agradeceria sime pudieras ayudar en mi otro tema es no encuentro el error
http://www.comunidadgm.org/index.php?topic=15612.0
Muchisimas Gracias por responder elviskelley y MaanuRP como siempre respuestas a bien rapidas.
aqui mismo te pregunto ahora para agregar otro objeto ese codigo?
[gml]with (obj_enemy)
{
if place_meeting(x,y,obj_normal_atk) and place_meeting(x,y,obj_magic_b)
{
global.col = true
}
}
//------------------------------------------------------------------
//esto es otro script(este es lo opuesto del primero)
with (obj_enemy)
{
if !place_meeting(x,y,obj_normal_atk) and place_meeting(x,y,obj_magic_b)
{
global.col = false
}
}[/gml]
//no se si se use and pero quiero que distinga si es uno u otro.
Lo que hace ese codigo es:
Si "obj_enemy" no esta colisionando con "obj_normal_atk" Y con "obj_magic_b": global.col = false
Y si esta colisionando CON LOS DOS AL MISMO TIEMPO global.col = true.
Si quieres que eso pase cuando colisione con cualquiera de esos dos objetos, debes poner OR en vez de AND.
Y si quieres que sucedan cosas distintas cuando colisione con los distintos objetos no los debes poner asi, debes poner cada colision por separado con sus respectivas funciones.
ahora lo puse asi en el step
[gml]with (obj_enemy)
{
if place_meeting(x,y,obj_normal_atk) or place_meeting(x,y,obj_magic_b)
{
global.col = true
}
}// hasta aqui si marca el true con cada 1 por separado pero cuando meto el otro se queda en false aunq colisione
------------------------------------------------------------------------
//este lo puse en otro piece of code separado del primero.
with (obj_enemy)
{
if !place_meeting(x,y,obj_normal_atk) or !place_meeting(x,y,obj_magic_b)
{
global.col = false
}
}//pero ya que meto esto se queda siempre en false aunque colisione con alguno de los 2 objetos.
[/gml]
cree un objeo parent para normal atk y magic b y ahora si funciona n__n! borre " or !place_meeting(x,y,obj_magic_b)" en ambos codigos