Manuela Paric'
a- a+

La funzione hitTest()

La proprietà hitTest() di un movieclip ci permette di sapere se questo viene "toccato" da un altro oggetto.
Questa funzione quindi, può tornare veramente utile nel caso vogliate programmare un videgame in Flash (collisione di astronavi, colpo andato a segno ecc. ecc.), comunque non è confinata solo a questo.
Con un po' di creatività si possono realizzare molte cose interessanti.

 

Cose da sapere per affrontare questo tutorial:


 

 

  • Come si usano le action Drag&Drop
  • Come si creano pulsanti e movie clips


Cosa faremo

Faremo un quadrato blu e uno arancione. Il quadrato blu sarà trascinabile. Il quadrato arancione invece determinerà se viene toccato da quello blu.


In pratica

A) Creiamo il quadrato blu

1. Disegniamo un quadrato blu.
2. Selezioniamolo e convertiamolo in Button (premendo F8)
3. Applichiamo le seguenti azioni al bottone appena creato:

on (press) {
        startDrag (this);
    }

    on (release, releaseOutside) {
        stopDrag ();
    }

N.B. L 'espressione this significa che quell'action verrà applicata al movie clip che la contiene, non al bottone stesso.

4. Inseriamo il nostro bottone in un movie clip, premendo F8 o anche modify > convert to symbol. Questo sarà l'oggetto effettivamente trascinato quando premiamo il bottone.
5. Diamo il nome di istanza "blu".


B)
Creiamo il quadrato arancione

1. Disegniamo un cerchio arancione.
2. Convertiamolo in movie clip (F8).
3. Modifichiamo il movieclip cliccandoci col tasto destro e selezionando edit (modifica).
4. Nella timeline del nostro movieclip cerchio, selezioniamo il secondo fotogramma e inseriamo un nuovo keyframe (F6).

A questo punto avremo due fotogrammi uguali, contenenti ognuno un cerchio.

5. Sul primo fotogramma mettiamo uno stop(), altrimenti il movieclip parte quando viene caricato.
6. Nel secondo fotogramma, sotto al cerchio, scriviamo "Mi tocca!".
7. Ritorniamo sulla timeline principale e applichiamo questa azione al movieclip arancione appena creato:

onClipEvent (mouseMove) {
    if (this.hitTest(_root.blu)) {
        this.gotoAndStop(2);
    } else {
        this.gotoAndStop(1);
    }
}


Questa è l'azione che ci permetterà di determinare la collisione dei due oggetti.
Analizziamola riga per riga:

onClipEvent (mouseMove) {
quando il mouse si muove....

if (this.hitTest(_root.blu))
se questo movie clip viene toccato da _root.blu (il nome di istanza del quadrato blu)......

this.gotoAndStop(2);
vai al secondo fotogramma di questo movieclip.

} else {
altrimenti (se non tocca).....

 this.gotoAndStop(1);
vai al primo fotogramma di questo movieclip.

 


scarica il .fla
di questa lezione



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Marcello
Ti è piaciuto l'articolo?