2014-04-14 3 views
0

Я пытаюсь создать игру Pacman на Java, и до сих пор я отображал фоновое изображение (синий и черный лабиринт), но у меня проблемы с отображением изображения Pacman. Когда я пытаюсь отобразить его в том же методе, с которым я показывал фон, он не появляется, если я слегка не изменяю вручную размер Jframe. И даже тогда, когда он появляется, в нижнем правом углу его изображения есть маленький белый квадрат. Что я могу сделать, чтобы исправить это? Есть ли другой способ, которым я могу вставить изображение pacman в это работает?Как перенести изображение на передний план в Java?

Это код:

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); 

ответ

0
window.add(pacman); 
window.add(panel); 

Вы хотите добавить Pacman, прежде чем добавить фон, так что рисунок над pacman спрайт и вы не видите его. Убедитесь, что вы нарисовали свои предметы в игре в обратном порядке, поэтому сначала нарисуйте фон, затем pacman.

1

Используйте JLayeredPane, установленный непосредственно в окне контейнера, и укажите глубину (z-порядок) компонентов при их добавлении.

+0

Я думаю, что этот вариант будет работать, но мы начинающие кодеры, и было бы здорово, если бы вы могли предоставить некоторые пример кода реализации. Это было бы очень признательно. благодаря – user3507106

0
window.add(pacman); 
window.add(panel); 

Вы не можете добавить два компонента в ЦЕНТР BorderLayout.

Если вы хотите, чтобы pacman появляться на панели, то вы добавить Pacman к окну:

//window.add(pacman); 
panel.add(packman) 
window.add(panel); 
Смежные вопросы