Chargement local sur une image

Chargement local sur une image - Java - Programmation

Marsh Posté le 12-03-2006 à 16:56:16    

Bonjour,  
 
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 :D (j'ai pas été très clair sur ce coup :p)
 
En gros faire une image dans ce genre la :
http://charas-project.net/resources/Charasets/18757_1132400789.PNG
 
 
Mais je ne sais pas comment faire pour charger seulement une partie d'image :(
 
Voila si quelqu'un sait... :p
 
Merci d'avance :)


Message édité par the_phoenix2 le 12-03-2006 à 16:57:03
Reply

Marsh Posté le 12-03-2006 à 16:56:16   

Reply

Marsh 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 ?

Reply

Marsh Posté le 13-03-2006 à 00:01:00    

Oui oui mon double buffer fonctionnait correctement :)
 
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 :p

Reply

Marsh 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.

Reply

Marsh 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
Reply

Marsh 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()".

Reply

Marsh Posté le 15-03-2006 à 14:02:11    

Hum ok ;)
 
Merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed