Pallas4
Messages postés14Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention11 mai 2005
-
11 mai 2005 à 18:44
PallasCat
Messages postés1Date d'inscriptionjeudi 12 mai 2005StatutMembreDernière intervention12 mai 2005
-
12 mai 2005 à 20:03
Bonjour
j'ai un programme qui est comme suit :
tous les tant millisecondes l'affichage est réaffiché.
Cet affichage est consstitué d'images en forme de cases et en forme de sprite.
La taille de chaque dépend de paramètres.
les cases sont affichées de manière à recouvrir toute la fenêtre.
Ensuite au dessus de ces images on affiche des sprites.
le pb est que comme il faut afficher en arrière plan les cases, que les
cases sont affichées dans les 100 fois, qu'il faut les redimensionner,
et ce à chaque fois ça créé un pb d'affichage de certain composants.
Bref j'aimerais savoir comment faire un arrière plan qui ne s'affiche
qu'une fois la première fois de l'appelle à la fonction paint (cette
fionction est appellée à partir d'une autre classe)
et comment à chaque image effacer tout ce qui n'est pas de l'arrière
plan avant de réafficher les sprites avec leurs nouvelles positions.
cid019
Messages postés237Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 juillet 2006 12 mai 2005 à 09:35
Je penses que ce code pourrait t'aider :
public void paintComponent( Graphics g )
{
Dimension d = getSize();
// si les donne on changer
if( triggerDrawFired )
{ // on crer l image ds lakel on va dessiner
offScreen = createImage( d.width, d.height );
// on fait notre dessin
drawOffScreen( (Graphics2D)offScreen.getGraphics(), d );
}
// maintenant tous ce qui suis sera dessiner par dessu le graph
// sans que celui ci soit redessiner
if ( offScreen != null ) // maintenant on affiche notre image
g.drawImage( offScreen, X, Y, this );
}
C'est un systeme de double buffering si je ne me trompe.
Il ne redessine que lorsqu'il faut.