Foros del Web » Creando para Internet » Flash y Actionscript »

Colisiones

Estas en el tema de Colisiones en el foro de Flash y Actionscript en Foros del Web. Que onda gente, tengo un problemita con las colisiones en flash mx, la onda es que tengo un rectangulo grande y un cuadro pequeño, el ...
  #1 (permalink)  
Antiguo 26/05/2006, 16:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
Colisiones

Que onda gente, tengo un problemita con las colisiones en flash mx, la onda es que tengo un rectangulo grande y un cuadro pequeño, el cuadro hace visible al rectangulo cuando se tocan. El problema es que cuando jiro el rectangulo unos treinta grados, como flsh estandariza todo a cuadros la zona de colision sigue siendo cuadrada y el rectangulo se hace visible aun cuando el cudro no lo ha tocado en realidad. hay alguna forma de que se pueda definir como sona de colision exactamente el rectangulo sin importar su posicion?
  #2 (permalink)  
Antiguo 26/05/2006, 16:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 14 años, 6 meses
Puntos: 3
hace tiempo que no uso esto, y no sé si la función seguirá existiendo en ActionScript 2, pero estaba lo de hitTest, y en uno de los parámetros ponías true o false dependiendo de si querías que la detección de colisión fuera mediante el recuadro de selección o mediante el propio objeto (sin hacer caso al recuadro).
  #3 (permalink)  
Antiguo 26/05/2006, 16:58
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 14 años, 6 meses
Puntos: 3
Sí mira, lo acabo de sacar del manual de Flash:

hitTest (método MovieClip.hitTest)
public hitTest() : Boolean

Evalúa el clip de película para comprobar si se superpone o corta con el área activa identificada mediante los parámetros de coordenadas target o x e y.

Sintaxis 1: Compara las coordenadas x e y con la forma o el recuadro de delimitación de la instancia especificada, según la configuración de shapeFlag. Si shapeFlag se configura como true, sólo se evaluará el área del escenario que ocupa la instancia en sí y, si x e y se solapan en algún punto, se devolverá el valor true. Esta evaluación resulta útil para determinar si el clip de película se encuentra dentro de un área activa especificada.

Sintaxis 2: Evalúa los recuadros de delimitación del destino (target) y la instancia especificada y devuelve true si se solapan o cortan en algún punto.

Parámetros x: Number La coordenada x del área activa en el escenario. y: Number La coordenada y del área activa en el escenario. Las coordenadas x e y se definen en el espacio de coordenadas globales. shapeFlag: Boolean - Valor booleano que especifica si debe evaluarse la forma completa de la instancia especificada (true) o sólo el recuadro de delimitación (false). Este parámetro sólo puede especificarse si el área activa se identifica empleando los parámetros de coordenadas x e y target: Object El trazado de destino del área activa que puede solaparse con la instancia especificada por el clip de película. El parámetro target normalmente representa un botón o campo de introducción de texto.

Disponibilidad: ActionScript 1.0; Flash Player 5

Valor devuelto
Boolean - El valor booleano true si el clip de película se solapa con el área activa especificada, false en caso contrario.

Ejemplo
El ejemplo siguiente utiliza hitTest() para determinar si el clip de película circle_mc se solapa con el clip de película square_mc cuando el usuario suelta el botón del ratón:

Código:
square_mc.onPress = function() {
    this.startDrag();
};
square_mc.onRelease = function() {
    this.stopDrag();
    if (this.hitTest(circle_mc)) {
    trace("you hit the circle");
    }
};
  #4 (permalink)  
Antiguo 27/05/2006, 17:33
 
Fecha de Ingreso: febrero-2006
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
Es verdad esa funcion me sirvio, muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 08:31.