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

Interfaces Graphiques en Java Discussion :

repaint qui sintille


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut repaint qui sintille
    Bonjour,

    j'aimeré creer un petit jeu en java et pour cela je me base sur des sources utilisé au cours d'un TP durant mes cours mais qui sont developpé pour tourner sur téléphone portable et donc utilisent des bibliotheques spécifiques.

    J'ai donc esséyé de convertir ces sources pour qu'elle puissent fonctionner sur PC mais je rencontre quelques probleme lors des repaint qui font sintiller l'image (avec l'image qui s'efface pour se réafficher). Alors que sur la version pour portable il n'y avait pas ce probleme :/

    Donc si quelqu'un à le temps et est interessé pour m'aider je laisse les sources pour qu'il puisse regarder :

    mes sources
    les sources de base pour telephone portables

    Pour executer mes sources il faut le lancer en tant qu'applet depuis la classe XplodedCanvas

    Le probleme vient peut etre des drawImage dans les classe Map et Cat dont j'ai mi le dernier paramettre à null car je ne savais pas à quoi il sert

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut,

    Je n'ai pas regardé tes sources par manque de temps, mais est-ce que sur le panel où tu pains ta carte et tout le reste tu as activé le double buffering (qui permet d'éviter le scintillement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tonPanel.setDoubleBuffered (true);
    Voilà j'espère que c'était le problème.

    a+

  3. #3
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Merci mais je ne trouve pas sur quoi utiliser cette méthode :/

    Je n'ai pas de pannel juste un applet et il n'a pas l'air avoir cette méthode


    edit:

    Il semblerai qu'en utilisant une JApplet cela sintillerai beaucoup moins

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Si tu utilises des images, utilises en la version compatible:

    http://www.jroller.com/page/gfx/?anc...p_effects_part

    (méthode loadCompatibleImage)

  5. #5
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Pourais tu m'en dire un peu plus ?

    Je débute et je n'ais pas vraiment compris ce que fesait loadCompatibleImage et comment l'utilser :/

  6. #6
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Je pense avoir identifier plus ou moins le probleme

    J'ai creer une version allégé du code qui ne fait que l'affichage pour ceux qui souhaiterai m'aider :

    http://seb33300.free.fr/chat/light.zip

    En fait il semblerai que la map et le personnage soient tous les 2 affiché indépendement, la map est afficher en 1er puis le personnage ce qui fait sintiller le personnage. (Si vous executez le code c'est ce que vous devriez voir)

    Il faudrait donc utiliser un buffer comment pour l'affichage de la map et du personnage mais c'est la que ça me pose probleme car je ne voi pas comment faire. La map et le personnage sont géré dans 2 classes différentes mais utilise le meme Graphics qui leur est passé en paramettre depuis la classe qui gere l'Applet

    En gros on a l'Applet avec ça méthode paint(Graphics _g) qui va passé en paramettre _g dans les méthodes draw() du personnage et de la map
    Ces méthodes vont ensuite faire un drawImage() sur le _g et donc afficher l'image chacun leur tour... Et pour éviter le sintillement il faudrait que l'affichage sa fasse que lorsque les 2 elements soit chargés

    Au passage, il semblerai qu'il y ai des problemes sous windows Vista car quand j'execute le code l'affichage est tres lent alors que si je passe sous windows XP/2000 il n'y a aucun probleme :/

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504

  8. #8
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Si je met un paint component j'ai une image grise :/

    En fait je pense qui faudrait creer l'image à afficher directement dans XplodedCanvas et la passer en paramettre à map et Character pour ecrire dessus sans que cela actualise l'image et actualiser l'image ensuite avec un drawImage sur _g mais j'arrive pas à faire ça

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    je ne comprends pas c'est quoi ton pb, j'ai rajouter à ton code un bouton et à chaque appui dessu on rafraichi l'image.... (je suis entre autre passé par un JPAnel qui contient ta map...)
    et bah je n'ai pas de scintillement....
    comment veut tu géré le rafraichisssment ? c'est une vidéo le bonhome se déplace aléatoirement ou c'est l'utilisateur qui le commande car si c'est le user, c'est pareil qu'avec mon bouton tu ne devrai pas avoir de scintillement...

  10. #10
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    C'est l'utilisateur qui déplace le personnage au clavier

    http://seb33300.free.fr/chat/index.html

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    en fait je ne suis pas sure d'avoir tout compris...
    lol
    Pourquoi il y a une attente que tu crée dans ta méthode paint() ? c'était juste pour nous mettre le code ou cela est vraiment comme ca dans ton code final ?
    car il n'y a pas besoin...
    des que tu detecte un deplacement et donc que tu mes à jour les coordonnées de ton chat, tu appel repaint et s'est tout...

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

Discussions similaires

  1. repaint () qui redessine un composant de trop
    Par Gurdile dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 24/10/2013, 11h49
  2. Réponses: 2
    Dernier message: 19/09/2011, 18h39
  3. Réponses: 4
    Dernier message: 21/07/2008, 22h32
  4. [Debutant] repaint() qui ne se font plus
    Par Syrus dans le forum 2D
    Réponses: 4
    Dernier message: 12/01/2007, 11h07
  5. repaint qui marche pas
    Par burhud dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 12/11/2006, 18h11

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