거품거품 게임 만들기_1

Claudia Hong·2022년 4월 17일
0

Project

목록 보기
26/26
  1. AWT 그림 그리기 개념

1) JFrame : 화면에 띄울 윈도우창을 하나 만드는 것(도화지를 내장하고 있다.) 계속 켜있어야 하기 때문에 while문으로 계속 돌아야 한다.
2) Jpanel : 일종의 도화지. 그림을 그릴 수 있다. 전체 크기가 300X300 일 때, 왼쪽의 상단 꼭지점은 (0,0)이고 오른쪽 하단 꼭지점은 (300,300)이다.
3) 픽셀 : 점들이 빛이 들어오고 안 들어오는 것이 모여서 그림이 되는데, 픽셀 단위가 촘촘할 수록 해상도가 좋아진다.(그림 퀄리티가 좋아진다)

2) 버튼을 화면에 그린다고 할 때, 문제점들
(1) 디자인 하는 것이 어렵다.(점 찍어서 연결하고 그런게)
(2) 디자인 애니메이션 구현이 어렵다
(3) 재사용이 안된다.

그래서 AWT의 컴포넌트를 사용한다. (컴포넌트 안에 버튼, 이미지뷰, 체크박스, 셀렉트박스 등 있음) 컴포넌트 = 위젯

  1. 환경설정

    lib 폴더에 롬복 >> buildPath >> configureBuildPath 해서 롬복을 설치하도록 한다.
    롬복 설치 확인 >> @Getter @Setter 기능 확인 (사용하는 이유: 상태가 10개 이상일 때 각각 Getter, Setter 메소드(메인 메소드에서 private String name 상태를 가져오려고)를 전부 넣어줄 수는 없으므로 코드르 더 깔끔하게 보이기 위해서 사용한다.

  2. 프레임 만들기

package bubble.test.ex01;

import javax.swing.JFrame;

public class BubbleFrame extends JFrame {
	
	public BubbleFrame() {
		setSize(1000, 640);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new BubbleFrame();
	}
}

(1) BubbleFrame 클래스를 만들고 JFrame을 상속받게 되면 윈도우 창이 된다.
(2) 윈도우 창은 내부에 패널을 하나 가지고 있다.

실행하면 창이 뜨는걸 확인할 수 있다.

(3) setVisible : 그림을 그려라. 없으면 그림이 안 그려짐
(4) 실행하면 계속 돌고 있음 >> while

(5) Market에서 WindowBuilder를 설치한 후, 위 클래스 선택 우클릭 Open With로 설치한 것을 클릭하면 아래와 같은 화면이 된다.

여기서 JFrame 안의 panel이 도화지가 되는 거고, 레이아웃을 absolute로 선택하면 컴포넌트를 어느 위치든 추가할 수 있게 된다.

1) 이벤트 리스너

키보드를 왼오위를 누를 때 그걸 지켜보고 있는 것을 이벤트 리스너라고 한다.
이벤트 리스너 내에 이벤트루프가 있는데, 앞에서 이벤트(왼오위)가 차곡차곡 쌓이고 쌓인 순서대로 처리가 된다.
이때, 처리는 이벤트 핸들러를 호출해서 된다. 이벤트 핸들러는 Stack의 코드들이 있는거라고 생각하면 된다.

이벤트 핸들러에 Thread.sleep(2000)을 넣어서 다음 이벤트 전 2초 대기를 하게 만들면 연속적으로 이벤트를 눌렀을 시 갑자기 순간이동하는 것을 볼 수 있다.

(1) 그림 변경 시점이 이벤트 루프에 모든 임무(Task)가 완료되어야 repaint가 되기 때문이다.

(2) 오른쪽 가는 키를 꾹 누르다가 위로 가는 키를 누르면 오른쪽으로 갈 수 없다. 두개의 방향키 동시에 실행 불가 >> 메인스레드 1개만 있어서.

2) 스레드

0개의 댓글