Forse è il caso che vi spieghi il senso di questo ciclo while(true): si trova nel main, creato per ciclare all'infinito. Il for (int i = 48; i < 58; i++) è creato invece per sondare diciamo 10 contenitori, il cui contenuto, se il relattivo array booleano startLoop[i] è uguale a true, non è altro che un array di dimensione variabile: se uno di questi è diverso da zero, prendo il suo valore n e lo riproduco come suono n.wav. Incremento il relativo j[i]++, cioè passo al valore successivo dell'array contenuto in uno dei 10 contenitori. Continuo a sondare questo array finché non termina la sua lunghezza per poi farlo ripartire dall'inizio: if (j[i] == len[i]) j[i] = 0; Tutto questo vorrei poterlo fare in 1 centesimo di secondo (div = 10), male che vada a livello prestazionale 1 decimo di secondo (div = 100). E' questo il punto, ha senso come cosa o mi esplode tutto ad un certo punto? (Prendete in considerazione il caso pessimo: tutti i 10 contenitori sono attivi, cioè startLoop[i] == true: ciclerebbero tutti in pochissimo tempo, scorrendo i propri array un valore dopo l'altro riproducendo i suoni nel giusto istante di tempo).
In javascript avevo adottato a dire il vero non più while, ma più setInterval...e non avevo considerato il contenuto dei contenitori come array ma come stringhe e le scorrevo come in questo caso: sarebbe una soluzione migliore?
GRAZIE
Codice uguale a quello del post di prima.
codice:while(true) { for (int i = 48; i < 58; i++) { if (startLoop[i] == true) { len[i] = num[i].length; if (num[i][j[i]] != 0) { snd[num[i][j[i]]].stop(); snd[num[i][j[i]]].setFramePosition(0); snd[num[i][j[i]]].start(); } j[i]++; if (j[i] == len[i]) { j[i] = 0; } } } try { Thread.sleep(div); } catch (InterruptedException e) { e.printStackTrace(); } }


Rispondi quotando