Comment ajouter l'unité du temps dans un jeu 2d en java

Fermé
sas202010 - 19 mai 2013 à 09:37
 sas202010 - 20 mai 2013 à 04:24
Bonjour,

je développe un jeu 2D en java c comme une personnage doit atteindre son but en 60 seconde , j'ai presk fini le travail j'ai construi le labyrinthe et ts mais reste la condition de temps , qq peux m'aider et merci

A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 mai 2013 à 15:28
Tu devrais utiliser un Thread qui gère le temps. Ce Thread ne fera rien car une fois démarré il se mettra tout de suite en pause pendant 60 secondes. Par contre une fois son traitement terminé il arrêtera le jeu.

Voici par exemple un programme qui affiche les nombres de 1 en 1, et s'arrête au bout de 5 secondes.

public class Timer extends Thread
{
    // Thread à arrêter une fois le temps écoulé
    private final Thread thread;
    
    // Temps après lequel il faut arrêter le thread
    private final long ms;
    
    // Si option=true : l'arrêt du timer avant la fin du temps arrête aussi le thread attaché
    // Si option=false: l'arrêt du timer avant la fin du temps laisse le thread se poursuivre
    private final boolean option;
    
    public Timer(Thread thread, long ms, boolean option)
    {
        this.thread = thread;
        this.ms = ms;
        this.option = option;
    }
    
    public void run()
    {
        try
        {
            Thread.sleep(ms);   // attends
            thread.interrupt(); // arrête le thread
        }
        catch (InterruptedException e) 
        {
            if (option) // arrête le thread selon option
                thread.interrupt();
        }
    }
}

public class Action extends Thread 
{
    public void run()
    {
        // affiches de 1 en 1, jusqu'à interruption
        for (int i=0; !interrupted(); i++)
            System.out.println(i);
    }
}

public class Test
{
    public static void main(String[] args)
    {        
        Action action = new Action();
        Timer timer = new Timer(action, 5000, true);
        
        timer.start();
        action.start();
    }
}
0
merci bien
0