Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problema hitTest()

  1. #1

    problema hitTest()

    Volevo cercare di capire questa cosa:

    Ho un movieclip contenente una figura circolare.
    Volevo rilevare la collisione con un altro movieclip di forma rettangolare.

    Il problema è questo:
    Ho notato l'area sensibile alla collisione non è quella del cerchio, ma bensì quella di un quadrato che contiene il cerchio.

    Io invece vorrei che la collisione venisse rilevata solo quando l'area del cerchio viene effettivamente in contatto con il Movie Clip di forma rettangolare!

    Ho notato nella firma del metodo hitTest che è possibile fornirgli dei parametri. Qualcuno sa se tramite questi ultimi posso ovviare al mio problema? E come?

    Ringrazio anticipatamente.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  2. #2
    l'hitTest con in mouse con true o false il tuo problema si risolve ma tra oggetti mica lo so...

    potresti comunque crearti una linea fittizia all'interno del movie ovale che lo ricalchi perfettamente e associare l'hitTest a questi piccoli segmenti che gestisci tramite array

    mi sono spiegato??

    tanti piccoli segmenti in fila che ricalcano l'ovale e un array che ti gestisce l'hitTest
    conosco poco di programmazione, equel poco ...lo uso pure malee

  3. #3
    Grazie infinite Drugantino per il tuo interessamento, ma con il metodo che mi proponi viene fuori un casino pazzesco!

    Cercavo qualcosa di più semplice.

    Non capisco infatti una cosa:

    Questa è la mia riga di codice:

    codice:
    if (_root.ball.hitTest(this))
    Ora, se io specifico il parametro true o false cosa ottengo?
    E come dovrei riportarlo sintatticamente?

    Così?

    codice:
    if (_root.ball.hitTest(this, true))
    Non credo, in quanto la firma del metodo richiede 1 o tre parametri (se mi sbalgio ti prego correggimi)

    Ho fatto poi innumerevoli ricerche sul forum ed eco cosa ho trovato al riguardo:

    http://forum.html.it/forum/showthrea...hitTest+cerchi

    ... dove negatyve propone un paio di link... ma l'sfw proposto non fa niente...

    e poi:

    http://forum.html.it/forum/showthrea...hitTest+cerchi

    ... dove 7vite propone una soluzione che non ho molto chiara (avevo trovato una cosa del genere anche smanettando sul forum di flashkit.com)

    Forza che ci riusciamo!
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  4. #4
    il true o false funziona con l hitTest col mouse e non con i clip la sintassi (clip.hitTest(altroclip,true)) non esiste.

    guarda non credo sia così terribile la soluzione postata sopra . si basa su un concetto che segmenti piccoli creano un area azzurra intorno a loro che puo ingannare l'occhio umano

    ora mi leggo i post che mi hai dato e ti faccio un fla
    conosco poco di programmazione, equel poco ...lo uso pure malee

  5. #5
    No, è che sono un idiota!

    Non ho letto benele istruzioni contenute all'interno dell'swf fornito da negatyve.

    Mi scarico il fla, lo studio e ti faccio sapere!

    Ti ringrazio ancora per la gentilezza.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  6. #6
    A grandi linee ho capito.

    Nell'esempio l'oggetto di forma irregolare viene contornato da clip (come mi hai in recedenza suggerito Drugantino) e viene creato un metodo aggiuntivo alla classe movieClip che verifica la collisione di questi utlimi con un movieclip. (spero di aver interpretato bene!)

    Una cosa non mi è chiara, questo metodo:

    codice:
    this["point"+i].localToGlobal(point);
    Cosa dovrebbe restituirmi questa chiamata di metodo?

    Grazie ancora
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  7. #7
    Ho provato a implementare il tutto nel mio filmato... ma rispetto a quando effettuavo il controllo della collisione su una sola istanza è rallentato tutto paurosamente!

    Boh, non saprei proprio come mai...

    Beh se a qualcuno viene in mente qualcosa...
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  8. #8
    andiamo per gradi....:master:

    Una cosa non mi è chiara, questo metodo:



    code:--------------------------------------------------------------------------------this["point"+i].localToGlobal(point);--------------------------------------------------------------------------------


    Cosa dovrebbe restituirmi questa chiamata di metodo?

    serve per convertite le coordinate dell'ogetto point da quelle del movieclip(locali)in coordinate rispetto allo stage(globali)

    poi....

    i clip da contornare (a mio avviso)non devono essere le varie forme irregolari ma soltanto il clip che sposti(altrimenti ci vuole una vita per farli tutti..)

    e infine....

    per quanto riguarda la velocità sicuramente se vedi le azioni del clip scoprirai che se si muove lentamente vuol dire che la sua velocità è stata impostata su 1 o 2 .

    quindi prova a sostituirla con un 5 o di più vedi tu.
    conosco poco di programmazione, equel poco ...lo uso pure malee

  9. #9
    Originariamente inviato da drugantino123

    i clip da contornare (a mio avviso)non devono essere le varie forme irregolari ma soltanto il clip che sposti(altrimenti ci vuole una vita per farli tutti..)
    Questo l'avevo già previsto.

    Originariamente inviato da drugantino123

    per quanto riguarda la velocità sicuramente se vedi le azioni del clip scoprirai che se si muove lentamente vuol dire che la sua velocità è stata impostata su 1 o 2 .
    quindi prova a sostituirla con un 5 o di più vedi tu.
    Ok, ma adesso il problema è un altro....
    Devo verificare il contatto di una pallina (in continuo movimento) con vari ogetti (una specie di flipper...). Con il metodo in questione si verifica un iterazione per ogni spostamento della pallina! Quindi non è un problema di impostare la velocità... potrei mettere anche 1.000 pixel, ma è un problema di lentezza nell'effettuare l'iterazione! Forse sarà meglio che provi altre strade... grazie comunque per l'interessamento Drugantino!
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.