Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA] problema con lo sto di un thread

    Ciao a tutti, sto creando un giochino in java nel quale vengono lanciate delle palline e con il mouse devono essere colpite cliccando il tasto sx(in poche parole è un tiro al piattello).
    Allora, veniamo al problema...il movimento della pallina è simulato tramite un thead che fa muovere una JLabel su cui è disegnata una pallina... è presente un altro thread che lancia le palline fino a quando il giocatore non finisce le "vite" a sua disposizione...
    Il lanciatore delle palline ha questo metodo run:
    public void run(){
    try{
    while(giocatore.getVite()>=0){
    cielo.addPipistrello();
    sleep((int)(1000+(Math.random()*2000)));
    }
    fine=true;
    cielo.setVisible(false);
    cielo.pulisci();
    FinePartita f=new FinePartita(giocatore); // è una JDilog che si apre appena finisce la partita.
    f.setVisible(true);
    }
    catch(InterruptedException e){
    e.printStackTrace();
    }
    }
    Il problema è che anche se il giocatore finisce le "vite" a sua disposizione, continuano a girare altre palline lanciare in precedenza.
    Credo che il problema stia nella sleep. Infatti il metodo prima di uscire dal while deve aspetta un tempo compreso tra 1 e 3 sec (durata della sleep), quindi non può dare il segnale di fine partita alle palline che devono essere cancellate.
    Spero di essere stato chiaro nella spiegazione del problema. Se non lo fossi stato fatemi sapere.
    Come posso rislvere questo problema?
    Il mio Blog
    WbLogIn Free Blog Hosting

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,324

    Moderazione

    Le domande relative al linguaggio Java vanno ora inserite nell'apposito forum dedicato.
    Sposto la discussione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.