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

AWT/Swing Java Discussion :

Scrolling fluide ?


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut Scrolling fluide ?
    Je débute en Java, et je suis un peu perdu pour les graphismes...

    Je fais un jeu, en plein écran. Je veux afficher un décors, et le faire bouger à l'aide du clavier. Là j'ai affiché 4 images (chacune occupe 1/4 de l'écran, en gif, 21 Ko), et elles bougent bien.

    Par contre, à chaque déplacement, ça clignote... on a le temps de voir la couleur de fond. Comment éviter ça ?

    J'utilise un MediaTracker pour chaque image.

    Ma class de départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class Jeu extends JFrame { ...
    C'est bien JFrame pour ce que je veux faire ?

    Dedans j'ai redéfinit paint() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void paint(Graphics g) {
    	if(ecran == "titre") afficheEcranTitre(g);
    	else if(ecran == "chargement") afficheEcranChargement(g);
    	else if(ecran == "jeu") afficheEcranJeu(g);
    }
    Les images s'affichent dans afficheEcranJeu(g) qui est dans la classe Jeu.

    Je ne sais pas du tout si c'est une bonne technique... En général on fait comment ?

    J'ai essayé avec des BufferedImage : pas mieux...

    En baissant la résolution à 1024*768 c'est pareil aussi.

    Merci bcp de m'aider, là ça me bloque !

  2. #2
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 58
    Points : 49
    Points
    49
    Par défaut
    Pour cela tu dois utiliser le double buffering :

    http://faqjava.developpez.com/?page=...oublebuffering

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Merci, je me renseigne et j'essaye ! Arf, je vais encore me coucher tard moi !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Excellente cette page !
    http://www.dgp.utoronto.ca/~mjmcguff...07-backbuffer/

    J'aime bien qd y a des applets pour expliquer les graphismes...

    Ben je pense que dans qqs minutes j'aurai résolu le pb !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Heu... qqs minutes... plutôt 1h !!! C'était un peu compliqué d'adapter à mon truc... Mais maintenant ça marche super bien ! Scrolling parfait, écrans qui s'enchaînent bien... youpi

    Merci de m'avoir orienté rapidement, maintenant je peux dormir tranquille !

    Hop, encore une chose d'apprise grâce à ce site.

  6. #6
    Membre actif
    Avatar de narkotik
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 229
    Points
    229
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void paint(Graphics g) { 
       if(ecran == "titre") afficheEcranTitre(g); 
       else if(ecran == "chargement") afficheEcranChargement(g); 
       else if(ecran == "jeu") afficheEcranJeu(g); 
    }
    pour ce qui est de cette technique, j'pense que c'est la bonne vu que de toute facon en mode plein écran, le mode exlusif empèche d'avoir accès au KeyListener ou MouseListener des nouvelles fenetres que tu crées

    cependant pour le double-buffering employé, j'ai vu le site de Seiya, http://www.dgp.utoronto.ca/~mjmcguff/learn/java/07-backbuffer/ c'est malheureusement du software, les perfs seront moins bonnes question framerate mais toute fois intéressante, si tu veux un double-buffering hardware (appelé page-flipping), j'te conseille d'aller faire des recherches du coté du site de Sun avec des mots comme page-flipping, backBuffer, strategy, BufferStrategy. si tu trouves pas hésites pas a demander j'suis la
    (+mitch): nan mais nanar j'préfère mourir contre un platane apres un accident de voiture plutot que d'une rupture d'anévrisme devant mon ecran d'pc

  7. #7
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    "Ze" link pour apprendre à faire du fullscreen en Java:
    http://java.sun.com/docs/books/tutorial/extra/fullscreen/

    Nuff said.
    Glob
    What would you do if you were not afraid?

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Ok, alors on peut aussi faire un double-buffering hardware... Bon, je verrai ça plus tard si ça suffit pas en software !

    Merci pour le lien, je l'ai mis au chaud pour plus tard.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. link smooth scroll (scroll fluide) full CSS
    Par misterfredy dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/05/2015, 18h40
  2. scroll mollette fluide (pas saccadé) sur chrome.
    Par infovect dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 13/03/2015, 15h39
  3. Scroll horizontal et design fluide
    Par Watilin dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 31/05/2011, 19h37
  4. scrolling vertical et horizontal
    Par myriam dans le forum MFC
    Réponses: 2
    Dernier message: 24/01/2003, 17h06
  5. scroll dans un label
    Par Pretender dans le forum Composants VCL
    Réponses: 9
    Dernier message: 27/09/2002, 17h06

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