Problema in Java, fare un'azione quando clicco col mouse.

di il
3 risposte

Problema in Java, fare un'azione quando clicco col mouse.

Salve.

Vorrei far attivare un bonus nel mio gioco in cui quando si preme un tasto del mouse, ti rimette la vita.
Voglio far in modo che solo una volta si puo' utilizzare.
Ho fatto questo, ma non capisco perche' non funziona affatto:

Prima di leggere vi dico che: vi incollo soltanto le stringe fondamentali, non preoccupatevi per quanto riguarda le importazioni delle librerie o errori del genere, il problema non è un errore di battitura ne di una dimenticanza.

Nella classe principale:

    @Override
    public void mouseClicked(MouseEvent me) { ///quando clicco con il mouse chiama il bonus, nella classe giocatore
        giocatore.Bonus();

    }
Nella classe del giocatore:

    public Giocatore() {}
        *Tutte le cose che servono come l'importazioni di immagini, che non incollo perchè occuperebbero troppo spazio*
        vita = 0;
        punti = 0;
        bonus = 1; //significa bonus disponibili, che inizialmente è = 1
    }
    
        public void Bonus(){
        bonus = 0; //dovrebbe settare il bonus a 0, in questo modo aggiungendo una IF si potrebbe utilizzare solo una volta 
        vita = 0;  // dovrebbe settare la vita a 0 cioe' al massimo, nel mio gioco piu' aumenta la vita piu rischi di perdere
    }    
Ma nulla di tutto questo accade, come se il mouselistener non funzionasse.

Qualcuno puo' aiutarmi?

3 Risposte

  • Re: Problema in Java, fare un'azione quando clicco col mouse.

    J4FPredator ha scritto:


            public void Bonus(){
            bonus = 0; //dovrebbe settare il bonus a 0, in questo modo aggiungendo una IF si potrebbe utilizzare solo una volta 
            vita = 0;  // dovrebbe settare la vita a 0 cioe' al massimo, nel mio gioco piu' aumenta la vita piu rischi di perdere
        }    
    
    Ma nulla di tutto questo accade, come se il mouselistener non funzionasse.
    Solo cambiare il valore di alcune variabili ... infatti NON porta ad alcun cambiamento a video! Deve avvenire anche "altro". Ad esempio settare esplicitamente qualcosa su un componente ... richiedere un repaint che farà poi invocare paint e/o paintComponent (a seconda del tipo di componente) che poi userà quelle variabili .. ecc...

    Senza sapere o vedere altro che hai fatto ..... cosa potrei dirti di altro? Nulla.
  • Re: Problema in Java, fare un'azione quando clicco col mouse.

    andbin ha scritto:


    J4FPredator ha scritto:


            public void Bonus(){
            bonus = 0; //dovrebbe settare il bonus a 0, in questo modo aggiungendo una IF si potrebbe utilizzare solo una volta 
            vita = 0;  // dovrebbe settare la vita a 0 cioe' al massimo, nel mio gioco piu' aumenta la vita piu rischi di perdere
        }    
    
    Ma nulla di tutto questo accade, come se il mouselistener non funzionasse.
    Solo cambiare il valore di alcune variabili ... infatti NON porta ad alcun cambiamento a video! Deve avvenire anche "altro". Ad esempio settare esplicitamente qualcosa su un componente ... richiedere un repaint che farà poi invocare paint e/o paintComponent (a seconda del tipo di componente) che poi userà quelle variabili .. ecc...

    Senza sapere o vedere altro che hai fatto ..... cosa potrei dirti di altro? Nulla.
    Ho riletto due volte il messaggio ma non sono riuscito a capire!
  • Re: Problema in Java, fare un'azione quando clicco col mouse.

    Ma nulla di tutto questo accade, come se il mouselistener non funzionasse.
    Senza avere la sfera magica, sei sicuro di aver aggiunto il MouseListener al componente sul quale vai a cliccare?

    Da quello che ho capito, molto probabilmente la classe principale sarà una classe che estende JPanel e che implementa anche MouseListener. Nel caso fosse così non basta che la classe principale sia un MouseListener per far sì che il componente riesca ad ascoltare i vari MouseEvent.
Devi accedere o registrarti per scrivere nel forum
3 risposte