Mostra notizie nelle discussioni
Avatar
☺
Scritto da
gengiva
Utente privileggiato
il 2012-05-02 08:14:54.0 alle 2012-05-02 08:14:54.0
Trollate totali: 9100
[java] dubbio thread
ho un problema con delle animazioni
immaginate uno spazio tridimensionale e un ipotetico personaggio che spara un proiettile identificato da un vettore

il programma ha una funzione draw(), che funziona da loop per le animazioni in cui inserire tutto quello che dev'essere visualizzato e che fa da sola "l'update"

se in questa funzione inserisco per esempio:

if(MouseIsCliccato){spara();}

e in spara() metto

for(float i=0; i<100; i++){
vettore=(x+i,y+i,z+i);
disegnaProiettile(vettore);
}

funziona
però mettiamo caso che questo proiettile debba muoversi lentamente, diminuireste l'incremento di i?
no, perché il personaggio non potrebbe muoversi finché il ciclo for non è terminato.

allora per ogni proiettile bisognerebbe creare un thread? si? no?
perché se faccio:

class proiettile extends Thread{

[...]

void run(){
for(float i=0; i<100; i++){
vettore=(x+i,y+i,z+i);
disegnaPunto(vettore);
sleep(200);
}
}
}

il proiettile va piano e il personaggio può spostarsi, ma se ne sparo una cifra a raffica, mi crasha tutto con un ArrayIndexOutOfBound brutto brutto..
quindi il problema è che se in un programma ci sono più vettori che devono muoversi ecc, voi che siete degli informatici cervelloni e anche un po culattoni, come gestireste la faccendaNewbie, inesperto

Cercatelo con Google, ritardato! ©

Pagina generata in 136 millisecondi

Utenti attivi: 10 nell'ultimo minuto, 21 negli ultimi cinque minuti, 46 negli ultimi 15 minuti