Voila je suis entrain de creer un petit jeu 2D en java et j'ai un petit soucis, au niveau de l'animation de mon perso (quand il marche) ca scintille trop car a chaque fois je charge une nouvelle image pourtant j'ai mis un double buffer
Donc je me suis dit que si je regroupait toutes les images de mon perso sur une seule et même image afin de faire des chargement locale sur l'image selon l'image du perso voulu ca devrait aller mieux (j'ai pas été très clair sur ce coup )
En gros faire une image dans ce genre la :
Mais je ne sais pas comment faire pour charger seulement une partie d'image
Voila si quelqu'un sait...
Merci d'avance
Message édité par the_phoenix2 le 12-03-2006 à 16:57:03
Publicité
Posté le 12-03-2006 à 16:56:16
post_it
Hmmmm!...
Posté le 12-03-2006 à 23:32:12
Bonjour!
Citation :
ca scintille trop car a chaque fois je charge une nouvelle image pourtant j'ai mis un double buffer
As-tu bien validé que ton double-buffering fonctionne, par exemple en dessinant un rectangle avec la méthode fillRect() ?
Citation :
ca scintille trop car a chaque fois je charge une nouvelle image
Quelle technique utilises-tu ? Tu as pré-chargé toutes les images dans un tableau ou bien tu les charges au fur et à mesure ?
En revanche je ne chargeait pas les images dans un tableau d'ou le scintillement, je met au passé car j'ai finalement décider d'utiliser un double buffer hardware et la ca fonctionne parfaitement j'ai méme du ralentir la vitesse de deplacement du joueur car ca allais trop vite
post_it
Hmmmm!...
Posté le 13-03-2006 à 08:57:09
Avec quelle méthode est-ce que tu charges les images de ton jeu ? La classe Image, par exemple, charge les images de façon asynchrone (càd dans un thread séparé de celui de ton jeu), ce qui peut amener des affichages bizarroïdes si on n'y est pas préparé... En revanche, il n'y a pas ce type de problème avec les BufferedImage.
the_phoenix2
Posté le 14-03-2006 à 09:17:31
je charge avec getToolkit().getImge()
hum en fait je fait direct ca : g.drawImage(getToolkit().getImage(...), .......); mais comme je l'ai dit plus haut, je n ai plus ce probleme avec le double buffer hardware
Mais il est quand même bon a savoir qu'il est preferable de charger dans une buffered image
Message édité par the_phoenix2 le 14-03-2006 à 09:21:58
post_it
Hmmmm!...
Posté le 14-03-2006 à 10:32:23
Citation :
g.drawImage(getToolkit().getImage(...), .......);
En utilisant cette méthode, tu ne déclenches le chargement de l'image qu'au moment de l'afficher, il y a donc une très forte chance qu'elle ne soit pas prête à temps. Il faudrait que tu charges les images durant une phase d'initialisation, en les stockant dans un tableau d'objets "Image", et que tu forces leur chargement avec la méthode "prepareImage()".