| |||
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? |
| |||
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). |
| |||
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"); } }; |