0

I'm trying to create a Pacman game in Java, and so far I've displayed the background image (the blue and black maze), but I'm having trouble showing the image of Pacman. When I try to display him in the same method with which I displayed the background, he doesn't appear unless I slightly manually alter the size of the Jframe. And even then when he appears there's a small white square in the bottom right corner of his image. What can I do to fix this? Is there any other way I can insert the pacman image in that works?

This is the code:

  JFrame window = new JFrame();

  ImageImplement pacman = new ImageImplement(new ImageIcon("C:\\Users\\16ayoubc\\Desktop\\Pacman-moving.gif").getImage());  
  ImageImplement panel = new ImageImplement(new ImageIcon("C:\\Users\\16ayoubc\\Desktop\\background.png").getImage());

  pacman.setLocation(255, 255);
  pacman.setVisible(true);
  pacman.setOpaque(true);
  window.add(pacman);
  window.add(panel);

  window.setVisible(true);
  window.setSize(576,655);
  window.setName("Pacman");
  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

3 Answers3

1

Use a JLayeredPane insted of the window directly for a container and specify the depth (z-order) of the components when you add them.

Durandal
  • 19,919
  • 4
  • 36
  • 70
  • I think this option will work but we are beginner coders and it would be great if you could provide some example code of implementing this. That would be much appreciated. Thanks – user3507106 Apr 16 '14 at 13:34
0
window.add(pacman);
window.add(panel);

You're adding pacman before you add the background, so it is drawing over the pacman sprite and you are not seeing it. Make sure you draw your items in the game in reverse order, so draw the background first, then pacman.

Eddie Curtis
  • 1,207
  • 8
  • 20
0
 window.add(pacman);
 window.add(panel);

You can't add two components to the CENTER of a BorderLayout.

If you want the pacman to appear on the panel then you add the pacman to the window:

//window.add(pacman);
panel.add(packman)
window.add(panel);
camickr
  • 321,443
  • 19
  • 166
  • 288