Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zorge en Marzo 04, 2016, 08:05:18 PM

Título: Colisión de dos instancias que siguen a un objeto
Publicado por: zorge en Marzo 04, 2016, 08:05:18 PM
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.
Título: Re:Colisión de dos instancias que siguen a un objeto
Publicado por: 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
Título: Re:Colisión de dos instancias que siguen a un objeto
Publicado por: zorge en Marzo 04, 2016, 10:56:05 PM
Muchas gracias luego cuando llegue del trabajo a casa lo mirare a ver si soy capaz de implementarlo XDXD Gracias :)
Título: Re:Colisión de dos instancias que siguen a un objeto
Publicado por: 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
Título: Re:Colisión de dos instancias que siguen a un objeto
Publicado por: zorge en Marzo 05, 2016, 06:07:54 AM
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.