Como puedo hace que dos instancias del mismo objeto no se superpongan al colisionar entre ellas si no que se queden una detrás o delante de la otra??es que siguen a un objeto player y quiero eso que las dos sigan siguiendo al objeto player pero que una no se superponga a la otra dejo adjunto ejemplo.Gracias de antemano a todos.

Hola,

Si solo se mueven de forma horizontal entonces puedes poner que revise si tiene colisión con otro objeto del mismo tipo (o un tipo parent)

[gml]
// Supongamos que el sprite del enemigo es de 32x32 y tiene el origin en el centro (16,16)

//Suponiendo que se va a mover a la izquierda
var oX = -3; // offset x, separación de pixeles entre los enemigos, debe ser mayor o igual a la velocidad de movimiento
var xTo = -1; // Velocidad de movimiento (1 pixel por step)

if (!collision_rectangle(x-16+oX,y-16,x+16+oX,y+16,obj_enemigo,true,true)){
    x += xTo;
}
[/gml]

Este es un modo básico pero es la idea de como funcionaría.

Saludos

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


Muchas gracias luego cuando llegue del trabajo a casa lo mirare a ver si soy capaz de implementarlo XDXD Gracias :)

Cita de: Jucarave en Marzo 04, 2016, 08:27:47 PM
Hola,

Si solo se mueven de forma horizontal entonces puedes poner que revise si tiene colisión con otro objeto del mismo tipo (o un tipo parent)

[gml]
// Supongamos que el sprite del enemigo es de 32x32 y tiene el origin en el centro (16,16)

//Suponiendo que se va a mover a la izquierda
var oX = -3; // offset x, separación de pixeles entre los enemigos, debe ser mayor o igual a la velocidad de movimiento
var xTo = -1; // Velocidad de movimiento (1 pixel por step)

if (!collision_rectangle(x-16+oX,y-16,x+16+oX,y+16,obj_enemigo,true,true)){
    x += xTo;
}
[/gml]

Este es un modo básico pero es la idea de como funcionaría.

Saludos
nada he puesto ese mismo codigo en el evento step y se siguen solapando

Cita de: zorge en Marzo 05, 2016, 06:00:57 AM
Cita de: Jucarave en Marzo 04, 2016, 08:27:47 PM
Hola,

Si solo se mueven de forma horizontal entonces puedes poner que revise si tiene colisión con otro objeto del mismo tipo (o un tipo parent)

[gml]
// Supongamos que el sprite del enemigo es de 32x32 y tiene el origin en el centro (16,16)

//Suponiendo que se va a mover a la izquierda
var oX = -3; // offset x, separación de pixeles entre los enemigos, debe ser mayor o igual a la velocidad de movimiento
var xTo = -1; // Velocidad de movimiento (1 pixel por step)

if (!collision_rectangle(x-16+oX,y-16,x+16+oX,y+16,obj_enemigo,true,true)){
    x += xTo;
}
[/gml]

Este es un modo básico pero es la idea de como funcionaría.

Saludos
nada he puesto ese mismo codigo en el evento step y se siguen solapando
perdón .....tuve que modificar un poco mas que nada los números del código ya que mi obj_no era de 32x32 lo modifique y funciono a la perfeccion muchas gracias camilo eres un genio.