IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Timer Graphique 2D


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut Timer Graphique 2D
    Bonjour,

    Je crée une appli graphique pour une interface tangible,
    jusque là j'ai implémenté le moteur graphique, mais il réagit
    à chaque intervention de l'utilisateur,
    et je voudrais créer un timer, pour avoir environ 24 frame / sec.

    Comment faire ça ?

    Troelsen explique ça dans son bouquin mais c'est trop succin.

    Merci

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Tu n'as pas un thread qui dessinne ton interface en boucle ? Il suffirait de mettre un Thread.Sleep(...) pour que ce dernier s'arrête un certain temps.

    Vu que tu que l'interface se raffraichit à chaque action de l'utilisateur, cela veut dire que tu as mis le code dans l'évènement Paint de la fenêtre ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Merci Jérôme,
    si effectivement, et cest une action utilisateur qui crée un PaintEvent et redessine la fenêtre projetée sur la table.

    Mais je souhaite justement me débarasser de cette condition, je veux que mon code soit indépendant de l'action utilisateur. Pour différentes raisons (animation continue, algorithmes...). J'ai bien regardé du côté des Timer(), mais très franchement les Events sont très obscurs pour moi.

    Je ne comprends pas pourquoi mon OnPaintBackground ne répond qu'à un PaintEvent et pas à un event déclenché par Timer... par exemple.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    dsl pour le chaos sémantique de mes messages, je commence et sans aucun appui sinon internet

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Merci Jérôme, je n'avais pas de thread, je lis à peine un doc à ce sujet... et oui je débute.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    bon et bien oui tout est dans le PaintEvent et je veux passer ça en thread, comme tu me le propose, mais je suis un peu largué.
    (un peu, enormément oui!)

    voilà mon Main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public static void Main(String[] argv)
            {
                int port = 0;
                switch (argv.Length)
                {
                    case 1:
                        port = int.Parse(argv[0], null);
                        if (port == 0) goto default;
                        break;
                    case 0:
                        port = 3333;
                        break;
                    default:
                        Console.WriteLine("usage: java TuioDump [port]");
                        //System.exit(0);
                        break;
                }
     
                TuioDemo demo = new TuioDemo(port, 640, 480);
                Application.Run(demo);
            }


    qui appelle ma classe où quasiment tout se passe, TuioDemo(w,h),

    et voici la méthode soumise au PaintEvent, méthode de Tuiodemo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     /*------PAINT-----*/
            protected override void OnPaintBackground(PaintEventArgs pevent)
            {
                // Getting the graphics object
                Graphics g2 = pevent.Graphics;
                g2.Clear(Color.White);
                /*---fingers movments---*/
                WindowManager();
     
                /*---songs movements----*/
               // if (browsing)
                //{
                    resetSongsMode1();
                //} //Accord songs position according to Objects position
     
                /*---draw---------*/
                drawSong(g2); //1.Set & Draw the song spheres
                drawSquares(g2); //2.Draw the density squares
                WindowDrawer(g2);       
                drawObjects(g2);
                drawFinger(g2);
                drawTable(g2); //6. Cut table from borders to pathOutside & write infos
     
                g2.Dispose();
     
            }

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut MultiThread et PaintEvent
    J'utilise un thread dans un OnPaint(), toutes les 50ms mon thread effectue des calculs puis dessine.
    Bon bien sûr il est inutile et je voudrais threader les calculs d'un côté et de l'autre le dessin.

    Mais je ne sais pas gérer le multiThread.
    Comment faire ?

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. JavaME : Timer et thread graphique
    Par ®om dans le forum Java ME
    Réponses: 5
    Dernier message: 31/01/2008, 15h31
  3. Timer de précision
    Par guigui dans le forum MFC
    Réponses: 1
    Dernier message: 04/12/2002, 15h21
  4. Timer en µsecondes
    Par Dagobert dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 25/11/2002, 00h59
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo