Timer lent + Gestion son

Fermé
lyonnais784 Messages postés 26 Date d'inscription lundi 3 octobre 2011 Statut Membre Dernière intervention 16 août 2015 - 2 avril 2014 à 23:59
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 3 avril 2014 à 23:13
Bonjour, j'ai développé un petit jeu afin de manier un peu tous ce que j'apprend en 1ere année de DUT informatique.

Ce dernier avance bien mais j'ai deux soucis.

1- J'ai un Timer de type t = Timer(10,monAL); où dedans j'incrémente des milliseconde qui devienne des seconde lorsqu'ils son a 99. Le soucis est que mon Timer met environ 1,2 a 1,5 seconde pour faire 1 seconde.

2- Je voudrais ajouter du son dans mon application. Mineur comme par exemple un bip lors du décompte du début ou plop lorsqu'on appuis sur une touche.



Si vous avez besoin de plus de détails demander moi. Je vous laisse également les .class de mon application si vous voulez voir par vous même ils vous suffit d'extraire et de lancer launcher.bat

https://www.dropbox.com/s/txkw9nn4tfkxlla/LeJeuDesTouches.rar



Merci et bonne soirée.


A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 3/04/2014 à 23:27
Bonsoir,

"Je vous laisse également les .class de mon application si vous voulez voir par vous même ils vous suffit d'extraire et de lancer launcher.bat"
Le code Java aurait été plus intéressant, parce que tes fichiers .class sont de toute façon incomplet vu qu'il manque utilitaire.TextLimiter (le truc qui fait tout marcher !) donc ton .bat ne fonctionne pas du tout...

De manière générale avec les Timer il ne faut jamais espérer qu'ils s'exécutent exactement à l'heure que tu attends, c'est impossible, le délai que tu indiques est un temps minimum à respecter. Il faut donc à chaque fois que ton Timer s'exécute, regarder quelle heure il est pour ne pas accumuler du retard.

Exemple :

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicLong;

public class Test
{
    public static void main(String[] args)
    {
        final long start = System.currentTimeMillis();
        final AtomicLong n = new AtomicLong();
        
        final long delay = 0;
        final long period = 5;
        
        TimerTask task = new TimerTask()
        {
            @Override
            public void run()
            {
                long expected = delay + n.getAndIncrement() * period;
                long real = System.currentTimeMillis() - start;
                long delta = real - expected;
                System.out.printf("Théorique = %d\tRéel = %d\tRetard = %d\n",
                                  expected, real, delta);
            }
        };
        
        Timer timer = new Timer();
        timer.schedule(task, delay, period);
    }
}

La confiance n'exclut pas le contrôle
0