ActionScript - evitar que dos MC se superpongan

 
Vista:

evitar que dos MC se superpongan

Publicado por Diego (1 intervención) el 16/02/2010 14:18:06
Hola, estoy programando un juego parecido a un rompecabezas. Tengo MC que arrastro y giro perfectamente.
Mi porblema es que no puedo hacer que cuando estos MC se tocan haga tope el uno con el otro, para que no se superpongan.
Hay alguna forma de hacer esto, por que ya me estoy quemando la cabeza esto.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Detener el movimiento de los objetos cuando se tocan

Publicado por Alejandro (369 intervenciones) el 27/06/2023 00:55:58
Para lograr que los objetos MC se detengan cuando se tocan y no se superpongan, puedes utilizar la detección de colisiones y ajustar las posiciones de los MC en función de esa detección. Aquí tienes una posible solución:

1. Asegúrate de que los MC que arrastras tienen un nombre de instancia asignado. Por ejemplo, supongamos que tienes dos MC llamados "mc1" y "mc2".

2. En cada fotograma o evento de actualización, utiliza el siguiente código para detectar colisiones y ajustar las posiciones de los MC:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
if (mc1.hitTestObject(mc2)) {
    // Detección de colisión, los MC se tocan
 
    // Calcula la diferencia de posición en X y Y
    var diffX:Number = mc1.x - mc2.x;
    var diffY:Number = mc1.y - mc2.y;
 
    // Ajusta las posiciones para evitar la superposición
    if (Math.abs(diffX) < Math.abs(diffY)) {
        // Movimiento horizontal predominante
        if (diffX > 0) {
            mc1.x = mc2.x + mc2.width;
        } else {
            mc1.x = mc2.x - mc1.width;
        }
    } else {
        // Movimiento vertical predominante
        if (diffY > 0) {
            mc1.y = mc2.y + mc2.height;
        } else {
            mc1.y = mc2.y - mc1.height;
        }
    }
}

Este código utiliza la función `hitTestObject()` para detectar si los MC "mc1" y "mc2" se tocan. Si se produce una colisión, se calcula la diferencia de posición en X y Y entre los MC. Luego, se ajustan las posiciones de los MC para evitar la superposición. Dependiendo de la dirección predominante del movimiento (horizontal o vertical), se ajusta la posición de uno de los MC en consecuencia.

Puedes adaptar este código según tus necesidades y la estructura de tu juego. Asegúrate de incluirlo en el lugar apropiado donde se realiza la detección de colisiones y se actualizan las posiciones de los MC.

Espero que esta solución te ayude a solucionar tu problema de superposición de los MC en tu juego de rompecabezas. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar