Jump to content
  • Advertisement
Sign in to follow this  
chris_j_pook

Java: Buffered images still flickering

This topic is 4903 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I have a game up and running in Java which uses double buffering. However the first time each image of a sprite animation is shown it flickers. For instance when I walk the main character to the left for the first time the character flickers, but when I walk left from then on the animation is smooth. Why is this ? Could it be something do do with the way I obtain my images... <CODE> Image img; img = Toolkit.getDefaultToolkit().getImage("sprites/up" + currentFrame + ".png"); BufferedImage bi = new BufferedImage(50, 100, BufferedImage.TYPE_INT_ARGB); bi.getGraphics().drawImage(img, 0,0, null); g.drawImage(bi,x,y, null); </CODE> Any ideas ?

Share this post


Link to post
Share on other sites
Advertisement
Couldn't really say for certain without looking at your other code, but ..

There are at least two better ways of loading your images.

One is through ImageIcon (from which you can get an instance of Image)
Other is through ImageIO (which returns BufferedImage)

Now, to make as sure as possible, that your images will be
accellerated, you should make sure that they fit your
current GraphicsConfiguration.

One solution:



public BufferedImage loadImage(String file)
{
BufferedImage initial = null;

try
{
initial = ImageIO.read(file);
}

catch(IOException e) { ... }

if(initial!=null)
{
GraphicsConfiguration gC = screenFrame.getGraphicsConfiguration();
BufferedImage result =
gc.createCompatibleImage(initial.getWidth(),initial.getHeight(),
initial.getColorModel().getTransparency());
Graphics2D g = result.createGraphics();
g.drawImage(initial,0,0,null);
g.dispose();
return result;
}

return null;
}



screenFrame is here your JFrame.

(I only typed this directly in here, so forgive me if it does not compile.
However, it shouldn't be far off).

But like I said, would need to see the rest of your code to help you better.

Share this post


Link to post
Share on other sites
This happens frequently. In Brackeens book he recommends to draw all your graphics with necessarily displaying them before the game starts. Seems to work.

PS; this would probably get alot more attention and intelligible responses in the Java forum on this site.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!