객체 지향과 좀더 친밀감을 쌓기 위해 비행기 게임을 만들어보자.
1. 시나리오작성
1. 화면에 바
객체 플레이어,적기,미사일,총알
이번에는 콘솔창이아닌 윈도우창에서 게임을 그래픽형태로 구현하기때문에
Java의 awt(Abstract Windows Tookit)에대해 알고 넘어가야한다.
1) awt란 java에서 지원되는 기본적인 GUI 컴포넌트의 집합입니다.
자바는 O.W.R.A로써 고안되었으므로 한가지 운영체제에 맞는 GUI라이브러리를 가지고 있을 수 는 없습니다. AWT는 OS차원의 GUI컴포넌트들을 추상화 시키고, 이들에 대해 동일한 인터페이스를 통하여 접근,통제할 수 있도록 만들어져 있습니다. GUI운영체제들이 가지고있는 공통적인 부분들은 대부분 포함하고 있으므로 여러기종에서 실행될 수 있는 GUI프로그램을 만들 수 있게도와줍니다.
2)paint()메소드의 인자로 넘겨지는 Graphics 객체
Graphics 객체는 awt 요소(component)가 화면상 또는 메모리속에서 차지하고 있는 사각형의 영역을 뜻합니다. AWT가 화면상에 무엇인가를 출력하기 위해서 행하는 모든 행동은 이 Graphics객체를 통해서만 이루어지며, Graphics객체는 AWT가 필요로 하는 거의 모든 메소드들을 가지고 있습니다.
3)Multi - Thread의 구현
java는 java.lang.Thread라는 패키지에 Thread Class가 정의 되어 있습니다. 자바에서는 다중 상속이 허용되지않지만 implements를 통해 다수의 인터페이스로 부터의 다중상속은 가능합니다.
Runnable Interface는 java.lang.Thread를 인터페이스화 시켜놓은것입니다.
4)더블 버퍼링
더블버퍼링이라는 것은 게임이나 , 애니메이션등에서 화면에서 바로 갱신을 할 경우, 화면상에 일어나는 깜빡임을 제거하기 위해서 메모리 속의 임시 영역에서 작업을 하여, 완성된 이미지를 화면에 출력하는 방식을 말합니다.
5)쓰레드의 주 루틴인 run()
쓰레드의 주루틴은 무한루프인 경우가 많습니다. run()안에서는 우선 repaint메소드를 호출해서 paint메소드를 간접적으로 불러줍니다 그이유는 run메소드안에서는 paint에 넘겨질 Graphics g를 얻을수 없기 때문입니다.
repaint()로 paint()를 불러주면 먼저 paint()가 불려지는 것이아니라 update()가 먼저불러지고
그 다음 paint()가 불려지게됩니다. 화면이 깜빡거리는 문제는 바로 update()는 화면을 전부지우고 다시 paint()를 부르기때문에 화면이 깜빡거리는 것입니다.
'웹 프로그래밍 기초 > 자바기반의 웹&앱 응용SW 개발자' 카테고리의 다른 글
자바기반의 웹&앱 응용 SW개발자 양성과정 18일차 -34 (0) | 2020.03.19 |
---|---|
자바기반의 웹&앱 응용 SW개발자 양성과정 18일차 -33 (0) | 2020.03.19 |
자바기반의 웹&앱 응용 SW개발자 양성과정 17일차 -31 (0) | 2020.03.18 |
자바기반의 웹&앱 응용 SW개발자 양성과정 16일차 -30 (0) | 2020.03.18 |
자바기반의 웹&앱 응용 SW개발자 양성과정 16일차 -29 (0) | 2020.03.18 |
댓글