Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    100

    come posso semplificare questo ciclo?

    Ciaoooo, dunque:
    io ho creato questo ciclo con while:

    while(distrattore1.hitTest(distrattore2) || distrattore1.hitTest(distrattore3) || distrattore1.hitTest(target) || distrattore2.hitTest(distrattore3) || distrattore2.hitTest(target) || distrattore3.hitTest(target))
    {
    distrattore1._x = Math.random()*478+65;
    distrattore2._x = Math.random()*478+65;
    distrattore3._x = Math.random()*478+65;
    target._x = Math.random()*478+65;
    }

    Come vedete mi pare assurdo dover scrivere tutte quelle condizioni...esiste un modo per semplificare?? considerate pure che in questo caso il ciclo è su 4 oggetti, ma il numero di oggetti aumenterà e io dovrò continuare a scrivergli tutte quelle condizioni??
    Vi prego aiutatemi...


  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Perdonami, ma non capisco se il contenuto di questa discussione è uguale a quello della discussione in flash, mi pare di sì, ma è scritta in maniera diversa e per questo ho il dubbio.
    In caso che siano uguali, devo chiudere, perchè non è consentita la pratica del "crossposting" in questo forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    100
    il contenuto sicuramente è simile ma qui molto più in generale chiedo un modo qualunque e qualche idea diversa per svolgere questo ciclo, non mi interessa che si svolga per forza con la hitTest basta che sia in qualche modo semplificato o modificato secondo nuove idee

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non vorrei darti false notizie, ma penso proprio che un modo semplice non esista, anhce se potresti creare una funzione di verifica sul singolo clip che restituisca il true o false a seconda del risultato e poi potresti usare quella per semplificare , ma è comunque una cosa lunga.
    Non so se funziona, va provata:

    Codice PHP:
    function verifyHitTest (targetitems) {
        var 
    iter = [];
        for (var 
    i=0i<items.lengthi++) {
            
    iter.push(target.hitTest(items[i]));
        }
        if (
    iter.toString().indexOf("true") > 0) {
            return 
    true;
        } else {
            return 
    false;
        }

    In pratica quando ti serve nell'if puoi fare direttamente:

    Codice PHP:
    while (verifyHitTest(distrattore1, [distrattore2distrattore3target]) || verifyHitTest(distrattore2, [distrattore3target] || distrattore3.hitTest(target)) 

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.