본문 바로가기
프로젝트/버블버블게임 만들기

[버블버블게임만들기] 1. 게임맵과 케릭터 넣기

by dantriss 2023. 7. 29.

유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다.

IDE : IntelliJ

언어 : Java 8

스프링부트 버전 : 2.7.13

DB : MySQL

빌드관리 도구 : Maven

OS : iOS

참고유튜브 : 메타코딩


지난시간에 이어서 프레임의 사이즈와 보여짐에 추가적으로

setDefaultCloseOperation으로 이제 프레임을 닫을 때 JVM도 같이 종료되게 설정

getContentPane으로 컨텐츠 영역을 추가해준다.

setLocationRelativeTo로 컴포넌트에 따른 위치를 지정해준다.

public BubbleFrame(){
    	setSize(1000,640);
        getContentpane.setLayout(null);                    
        setLocationRelativeTo(null);        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
}

 

해당 메서드에 계속 추가를 하게 된다면 복잡해지기 때문에 initSetting과 initObject를 추가해서 관리해주자

private void initSetting(){
    setSize(1000,640);
    getContentpane.setLayout(null);                    
    setLocationRelativeTo(null);        
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

 

private void initObject(){
        backgroundMap = new JLabel("hello world");
        backgroundMap.setSize(100,100);
        backgroundMap.setLocation(300, 300);
        add(backgroundMap);                                  ]
    }

public BubbleFrame(){
    initObject();
    initSetting();
    setVisible(true);
}

 

 

 실행을 해보면 아무것도 없던 프레임에 hello world가 initObject에서 지정한 위치에 있는 걸 확인 할 수 있다.

이제 텍스트가 아닌 맵 이미지를 넣어보자

image 에 있는 backgroundMap.png를 텍스트에 initObject에 넣어주면

private void initObject(){
        backgroundMap = new JLabel(new ImageIcon("image/backgroundMap.png"));
        backgroundMap.setSize(1000,600);
        add(backgroundMap);                                  ]
    }

 

실행을 해보면 이제 아무것도 없던 프레임에서 맵사진이 들어간프레임을 확인할 수 있다.

사이즈를 설정한 부분을 지우고 add 해서 배경화면을 넣은 부분도 지우고 패널에 backgroundMap 변수를 넣어준다.

private void initObject(){
        backgroundMap = new JLabel(new ImageIcon("image/backgroundMap.png"));
		setContentPane(backgroundMap);
    }

 

 

케릭터를 넣어주기위에 player라는 클래스를 생성한다.

 

JLabel을 상속받고 x좌표와 y좌표를 넣어주기 위해서 변수를 만들어준다.

 

플레이어 클래스도 BubbleFrame 클래스와 마찬가지로 아래와 같이 세팅해준다.

public class Player extends JLabel {
    private int x;
    private int y;

	private ImageIcon playerR, playerL;

    public Player() {
        initObject();
        initSetting();
    }

    private void initObject(){

    }
    private void initSetting(){

    }
    public static void main(String[] args) {

    }

}

 

케릭터 이미지를 넣어주기 위해 image에 있는 playerL.png 와 playerR.png를 

 

player 클래스에 initObject 메서드에 넣어준다.

private void initObject(){
    playerR = new ImageIcon("image/playerR.png");
    playerL = new ImageIcon("image/playerL.png");

}

 

이제 넣은 케릭터이미지의 위치를 지정해 주기 위해서 initSetting메서드에 아래와같이 작성해준다.

기본적으로 오른쪽을 보고 있는 케릭터 이미지를 사용하고 사이즈는 50,50으로 설정 위치는 x축 55, y축 535로 설정

private void initSetting(){
    x = 55;
    y = 535;

    setIcon(playerR);
    setSize(50,50);
    setLocation(x,y);
}

 

BubbleFrame으로 이동해서 Player 클래스를 추가해주고

 

initObject에 케릭터의 위치와 크기를 설정해준 클래스를 선언해주고 add 로 추가해준다.

 

그 후 실행해보면 아무것도 없던 프레임에서 맵과 케릭터를 볼 수 있게 된다.

댓글