Hola a todos, tengo una duda:
en mi juego, similar a las damas, la ficha elegida avanza 80 pixeles en la direccion elegida, atravezando así otra instancia del mismo objeto (la ficha, de ahora en mas object0) que se ubica a 40 pixeles a la derecha de la posicion original y a 40 pixeles de la nueva posicion. Lo que nescesito, es que luego de transportarse (mediante jump,siempre en x), se elimine la instancia del mismo objeto que se ubicaba entre medio de las dos posciciones.
Hasta ahora tengo este codigo:
if (place_meeting(other.x-40,other.y+0,object0))
{
with (other)instance_destroy();
}
pero lo unico que hace es destruir la instancia que intento preservar. ¿ que está mal?
PD:Perdon por la horrible explicación, pero son las 12 de la noche en mi pais,estoy dormido, y solo nescesito este codigo para poder tener la engine lista y ponerme a hacer los niveles. XD
Prueba con la función position_destroy( x-40, y );
Cita de: ivn_eze en Diciembre 03, 2014, 04:04:22 AM
Hola a todos, tengo una duda:
en mi juego, similar a las damas, la ficha elegida avanza 80 pixeles en la direccion elegida, atravezando así otra instancia del mismo objeto (la ficha, de ahora en mas object0) que se ubica a 40 pixeles a la derecha de la posicion original y a 40 pixeles de la nueva posicion. Lo que nescesito, es que luego de transportarse (mediante jump,siempre en x), se elimine la instancia del mismo objeto que se ubicaba entre medio de las dos posciciones.
Hasta ahora tengo este codigo:
if (place_meeting(other.x-40,other.y+0,object0))
{
with (other)instance_destroy();
}
pero lo unico que hace es destruir la instancia que intento preservar. ¿ que está mal?
PD:Perdon por la horrible explicación, pero son las 12 de la noche en mi pais,estoy dormido, y solo nescesito este codigo para poder tener la engine lista y ponerme a hacer los niveles. XD
Lo que está mal en tu código es que usas la palabra reservada "other" que no hace referencia a nada en concreto. Tendría sentido si el contexto fuera una colision.
Lo que podés hacer es lo siguiente:
var ficha;
ficha = place_meeting(x-40,y+0,object0);
if (ficha >0)
with (ficha) instance_destroy();
Lo digo al tanteo, pero probá si te sirve. Revisando el manual ahora que puedo, la función place_meeting(...) no te va a funcionar del modo que propongo porque solo devuelve true/false. En todo caso, usá:
var ficha;
ficha = instance_position(x-40,y,object0);
if (ficha != noone)
with (ficha) instance_destroy();
Muchas Gracias Black_Cat, después de probar tu código, vi que no funcionaba y lo modifiqué. Ahora anda perfecto.
var asd
asd = instance_place(x+40,y+0,all);
with (asd)instance_destroy ()