Dessin de composant transparent

cs_nounouX Messages postés 34 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 21 mars 2006 - 13 juil. 2004 à 09:13
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 14 juil. 2004 à 12:44
Salut a tous , voila je suis tj sur mon projet de vacance : "faire un Tetris en java a la plage :-D" , et j essaye de faire des choses jolie graphiquement. pour l'affichage j ai une classe ScreenGame qui etend JPanel et donc une methode :

public void paintComponent(Graphics g) {
Graphics2D g2d= (Graphics2D) g;
...
}

qui s'occupe de redessiner le panel (avec une image en fond, et les images representant les pieces).

Comme vous le voyez j'utilise Graphics2D, mais voila j'ai essayé de dessiner des composant transparent, par exemple un rectangle transparent deriere mon "puit" (le puit dans lequelle les spieces tombent) en mettant :

// je met la transparence
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f ));
// je dessine mon rectangle transparent
g2d.fillrect(...);
// je retire la transparence
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f ));

Mais voila le probleme : CA RAME !!! LOL je voulais savoir si il y avait une autre methode pour dessiner en transparence sans ralentir le jeu

Merci de vos reponses

ps : j ai mis aussi les commandes pour accelerer l'affichage en 2D:
/* Désactivation de l'anti-aliasing */
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
g2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/* Demande de rendu rapide */
g2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED);
g2D.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED);
g2D.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
g2D.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);

5 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
13 juil. 2004 à 09:26
ptet qu'il faut utiliser opengl pour qu'il prenne parti de l'acceleration?
0
cs_nounouX Messages postés 34 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 21 mars 2006
13 juil. 2004 à 10:38
heu.... vi... :-D
(pas d 'autre solution sure ?)
et comment on utilise l'openGL ?
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
13 juil. 2004 à 11:06
GodConan :clown)

ben tu peu aussi utiliser l alphachannel ds le choi de ta couleur ...

g.setColor( new Color( r, v, b, Alpha );

++
0
cs_nounouX Messages postés 34 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 21 mars 2006
13 juil. 2004 à 11:43
ok merci je vais essayer ça !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
14 juil. 2004 à 12:44
GodConan :clown)

Autrement tu peu regarder ma source de Tetris sur ce site qui utilise la transparence pour les pieces... ;o)

++
0
Rejoignez-nous