[STS] 버블버블- 게임 맵과 캐릭터 추가하기

HootJem's avatar
Oct 24, 2024
[STS] 버블버블- 게임 맵과 캐릭터 추가하기
프로젝트 최상단에 image sound폴더를 생성합니다.
notion image
 
이제 이미지와 사운드 파일을 넣습니다.
레파지토리를 다운 받아
notion image
 
이미지와 사운드를 붙여넣은 다음 Frame 을 작성합니다.
package bubble.test.ex02; import javax.swing.JFrame; public class BubbleFrame extends JFrame { public BubbleFrame() { setSize(1000, 640); setLayout(null); // absoulte 레이아웃 (자유롭게 그림을 그릴 수 있다.) setLocationRelativeTo(null); // JFrame 가운데 배치 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // x버튼으로 창을 끌 때 JVM 같이 종료 setVisible(true); } public static void main(String[] args) { new BubbleFrame(); } }
 
Label 은 만들어 졌으나 크기가 지정 되지 않아 화면에서는 보이지 않음.
package bubble.test.ex02; import javax.swing.JFrame; import javax.swing.JLabel; public class BubbleFrame extends JFrame { private JLabel backgroundMap; public BubbleFrame() { initObject(); initSetting(); setVisible(true); } private void initObject() { backgroundMap = new JLabel("안녕"); add(backgroundMap); // JFrame 에 JLabel 이 그려진다.(add 만으로는 크기가 없어서 안보임) } private void initSetting() { setSize(1000, 640); getContentPane().setLayout(null); // absoulte 레이아웃 (자유롭게 그림을 그릴 수 있다.) setLocationRelativeTo(null); // JFrame 가운데 배치 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // x버튼으로 창을 끌 때 JVM 같이 종료 } public static void main(String[] args) { new BubbleFrame(); } }
notion image
 
이렇게 사이즈와 위치를 추가해 주면 화면에 나타난다.
private void initObject() { backgroundMap = new JLabel("안녕"); backgroundMap.setSize(100, 100); backgroundMap.setLocation(300,300); add(backgroundMap); }
notion image
 
이러한 방법으로 이미지도 넣을 수 있습니다.
이미지를 넣은 다음 디자인에 가서 확인 해 보면 getContentPane() 하위에 이미지가 들어간 것을 확인할 수 있습니다.
그러나 전체를 차지하는 이미지를 panel 내부에 넣을 이유가 없기 때문에 JFrame 내부에 바로 이미지를 설정해 주도록 하겠습니다.
private void initObject() { backgroundMap = new JLabel(new ImageIcon("image/backgroundMap.png")); backgroundMap.setSize(1000, 600); add(backgroundMap); }
notion image
notion image
private void initObject() { backgroundMap = new JLabel(new ImageIcon("image/backgroundMap.png")); setContentPane(backgroundMap); }
 

캐릭터 추가하기

package bubble.test.ex02; import javax.swing.ImageIcon; import javax.swing.JLabel; public class Player extends JLabel { private int x; private int y; private ImageIcon playerR, playerL; public Player() { initObject(); initSetting(); } private void initObject() { playerR = new ImageIcon("image/playerR.png"); playerL = new ImageIcon("image/playerL.png"); } private void initSetting() { x = 55; y = 535; } }
아까 만든 Frame 이 JLabel 이고, 플레이어는 그를 상속받기 때문에 바로 사이즈와 위치를 지정해 줍니다.
private void initSetting() { x = 55; y = 535; this.setIcon(playerR); setSize(50, 50); setLocation(x, y); }
 
그리고 프레임으로 돌아가 플레이어를 추가합니다. 그리고 실행 시켜보면 플레이어가 추가되어 있는 것을 볼 수 있습니다.
public class BubbleFrame extends JFrame { private JLabel backgroundMap; private Player player; public BubbleFrame() { initObject(); initSetting(); setVisible(true); } private void initObject() { backgroundMap = new JLabel(new ImageIcon("image/backgroundMap.png")); setContentPane(backgroundMap); player = new Player(); add(player); }
notion image
 
Share article

[HootJem] 개발 기록 블로그