Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di caralu
    Registrato dal
    Sep 2004
    Messaggi
    135

    Timer videogame

    Ciao a tutti!
    Devo realizzare una classe di un videoGame per fare apparire gli oggetti bonus all'interno di un labirinto. Vi sono diversi tipi di oggetti che compaiono per un periodo di tempo limitato (proporzionale al "valore" dell'oggetto) e poi spariscono. Volevo chiedervi un consiglio per realizzare il timer, come posso fare?
    Stavo pensando di memorizzare l'ora dell'orologio di sistema al momento che compare l'oggetto e fare sparire quest'ultimo al momento:
    "oraMemorizzata + intervalloScelto".
    Mi potete dare qualche consiglio su come implementarlo?
    Grazie
    Linux Slackware 11 - Kernel 2.6.18

  2. #2
    Utente di HTML.it L'avatar di caralu
    Registrato dal
    Sep 2004
    Messaggi
    135
    Ho implementando una variabile static di Tipo timer per ogni oggetto Bonus, in modo che siano indipendenti da loro e possano essere richiamati e bloccati in momenti diversi.
    Ora ho un altro problema...Come posso fare a richiamare gli oggetti Bonus in maniera casuale sullo schermo? Io ho pensato ad una soluzione di questo genere:
    codice:
    //Metodo di richiamo del Bonus (all'interno della classe Game):
    
    private void probabilitàPremio()
         {
          //Il numero dei premi visualizzabili deve essere > di quelli visualizzati
          if(MAX_NUM_PREMI > premiVisualizzati)
                    {
                        Random rand = new Random();
                        //Genero un numero da 0 a 99
                        probabilità = rand.nextInt(100);
                   //Ho il 30% delle probabilità che in un ciclo venga visualizzato 1 Bonus
                        if(probabilità > 70)
                            {
             //I premi sono già memorizzati su un'arrayList e caricati in una mappa
             //ma sono "Invisibili" fino a che non si esegue il metodo eseguiPremio();
             //Scelgo un premio in maniera Random fra quelli esistenti
                                int nPremioRandom = rand.nextInt(premi.size());
                                Bonus bonus = (Bonus) premi.get(nPremioRandom);
                                //Rendo visibile il premio
                                bonus.eseguiPremio();
                                premioEsecuzione = true;
                            }
                    }
    }
    ---------------------------------------------------------------------------------------------------
    //eseguiPremio (all'interno della classe Bonus) invece è questo:
    
    public void eseguiPremio()
            {
            this.visibile = true;
        
            try {
                Timer timer = new Timer();
                TimerTask task = new MyTask();
                // aspetta 10 secondi prima di sparire
                timer.schedule( task, 10000 );
                }
            catch (Exception e) {}
            
            this.visibile = false;
        }
        
        private class MyTask extends TimerTask
            {
            public void run() {}
            }
    Questa è la prima soluzione che mi è venuta in mente ma mi sembra un po grossolana.. Il gioco è diventato molto "pesante" (gli oggetti animati si muovono in maniera meno fluida) e non riesco nemmeno a far comparire i premi! C'è sicuramente qualche soluzione più fine per raggiungere questo scopo, sapete consigliarmi qualcosa? Grazie
    Linux Slackware 11 - Kernel 2.6.18

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.