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

Graphisme Java Discussion :

Animation d'images . . . problème de clignottement


Sujet :

Graphisme Java

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 1
    Par défaut Animation d'images . . . problème de clignottement
    Bonjour,

    je tentes de faire une animation avec 8 images nommées guepard(1 à 8).gif.
    L'animation fonctionne mais il y a un petit problème de refraichissement d'image, il y a comme des clignotement entre chaque images. J'ai effectué des recherches sur le net et il y a un truc de surcharge de la méthode upate() pour accélérer le refraichissement de l'image mais ce ne fonctionne pas . Voici mon code :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import java.applet.*;
    import java.awt.*;
    public class AnimImages extends Applet implements Runnable {
        Image [] img;
        int cpt=1;
        int nombreImage = 9;
        Thread animation;
     
        public void init() { 
            setBackground(Color.WHITE); 
            img = new Image[nombreImage];
            for (int i = 1; i<nombreImage; i++) {
              img[i] = getImage(getCodeBase(), "images/guepard" + i + ".gif");
            }
            animation = new Thread(this);
        }
     
        public void run() {
            while (true) {
              try {
                cpt++;
                if (cpt == nombreImage-1) cpt = 1;
                repaint();
                Thread.sleep(300);
              }
              catch (InterruptedException e) {}
            }
        }
     
        public void start() {
            animation = new Thread(this);
            animation.start();
        }
     
        public void stop() {
            animation.stop();
            try {
                animation.join();
            }
            catch (InterruptedException e) {}
        }
     
        public void paint(Graphics g) {
            g.fillRect(0,0,200,150);
            setBackground(Color.WHITE);
            setForeground(Color.WHITE);
            g.drawImage(img[cpt], 10, 15, this);
        }
     
        public void update(Graphics g){  //surcharge indispensable
            paint(g); 
        }
     
     
    }
    Est-ce que quelqu'un sait comment régler ce prob ?
    Merci à l'avance !

  2. #2
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Renseigne toi sur le "double buffering". C'est assez simple à appliquer une fois le principe compris.

    En gros, il s'agit d'avoir 2 Graphics.
    Un est affiché à l'écran et l'autre est "caché"
    Tu fais le paint sur le Graphics caché et tu l'affiches. Plus de clignottement avec ça.

    Ensuite il y a le double buffering hardware et le double buffering software. Pour ton cas, si c'est juste pour une petite annimation, le software fuffira.

    Cherche un peu là dessus, il y a plein d'exemples.

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    encore mieux, une classe qui le gere :
    BufferStrategy

    Il y a un exemple qui marche très bien

    mavina

Discussions similaires

  1. Problème d'animation d'images
    Par animation dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 23/01/2009, 10h32
  2. [Traitement d'image] problème avec les boutons animés
    Par robmoto dans le forum Webdesign & Ergonomie
    Réponses: 9
    Dernier message: 17/08/2007, 13h36
  3. [Image] Problème d'ouverture de JPEG CMYK
    Par Robiwan59 dans le forum 2D
    Réponses: 2
    Dernier message: 04/10/2005, 17h22
  4. [FLASH] Animer une image
    Par @zr@el dans le forum Flash
    Réponses: 6
    Dernier message: 01/06/2005, 08h20
  5. [IMAGE]Problème d'affichage
    Par LoLoLem dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/07/2004, 18h41

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