JAVA - 15
카테고리: java
SnakeGame.Framejava
SnakeGameFrame
클래스:JFrame
을 상속받은 클래스로, 게임 창을 생성합니다.GroundPanel
객체를 게임 창의 콘텐트 팬으로 설정합니다.- 스네이크 게임을 실행하는 스레드인
snakeThread
를 생성하고 시작합니다.
GroundPanel
클래스:JPanel
을 상속받은 내부 클래스로, 게임 판을 표시합니다.- 게임 판의 크기와 배경 이미지를 설정합니다.
SnakeBody
객체를 생성하고 판에 추가합니다.- 키 이벤트를 처리하기 위한
MyKeyListener
클래스를 정의하고 등록합니다. - 게임 루프를 실행하는
run()
메서드를 구현합니다. 일정 시간마다 스네이크의 움직임을 처리합니다.
SnakeBody
클래스:- 스네이크의 몸통을 나타내는 클래스입니다.
Vector<JLabel>
을 사용하여JLabel
객체들을 저장합니다.- 스네이크의 초기 위치와 몸통을 생성하고 판에 추가하는
addIn()
메서드를 구현합니다. - 스네이크의 이동을 처리하는
move()
메서드를 구현합니다. 몸통의 각 부분을 이전 부분의 위치로 이동시킵니다.

MonsterGameFrame.java
MonsterGameFrame
클래스:JFrame
을 상속받은 클래스로, 게임 창을 생성합니다.GamePanel
객체를 게임 창의 콘텐트 팬으로 설정합니다.
GamePanel
클래스:JPanel
을 상속받은 내부 클래스로, 게임 판을 표시합니다.- 아바타와 괴물을 나타내기 위해
JLabel
컴포넌트를 사용합니다. - 키 이벤트를 처리하기 위한
MyKeyListener
클래스를 정의하고 등록합니다. - 괴물을 움직이는 스레드인
MonsterThread
를 생성하고 시작합니다. - 키 입력에 따라 아바타의 위치를 이동시키고, 아바타와 괴물의 위치를 갱신합니다.
MyKeyListener
클래스:KeyAdapter
를 상속받은 내부 클래스로, 키 이벤트를 처리합니다.- 키 입력에 따라 아바타의 위치를 변경합니다.
- ‘q’ 키가 입력되면 프로그램을 종료합니다.
MonsterThread
클래스:Thread
를 상속받은 내부 클래스로, 괴물을 움직이는 스레드입니다.- 괴물(
from
레이블)과 아바타(to
레이블)의 위치를 비교하여 괴물이 아바타를 추적합니다. - 일정 간격으로 괴물의 위치를 변경하고, 패널을 다시 그려줍니다.

SnowFrame.java
SnowFrame
클래스는 JFrame
을 상속하여 프레임을 생성하고 초기화하는 역할을 합니다. 프레임의 제목을 설정하고, 콘텐트 팬으로 SnowPanel
을 설정합니다. 그리고 프레임의 크기를 설정하고, 크기 조절을 비활성화하며, 가시성을 설정합니다.
SnowPanel
클래스는 JPanel
을 상속하여 눈이 내리는 마을을 그리는 역할을 합니다. 내부에는 Image
객체를 생성하여 배경 이미지를 설정하고, 눈의 개수와 크기를 설정하는 변수들이 있습니다. 또한, 눈의 위치를 저장하는 snowVector
벡터가 있습니다.
SnowPanel
의 생성자에서는 addComponentListener
를 사용하여 패널의 위치와 크기가 설정되면 눈을 만드는 작업을 수행합니다. addSnow()
메서드를 호출하여 각 눈의 위치를 랜덤하게 생성하고 snowVector
에 추가합니다. 그리고 SnowThread
스레드를 시작하여 눈이 내리는 애니메이션을 시작합니다.
paintComponent()
메서드에서는 img
변수에 저장된 배경 이미지를 그립니다. 그리고 drawSnow()
메서드를 호출하여 눈을 그립니다. drawSnow()
메서드는 snowVector
에 저장된 눈의 위치를 이용하여 눈을 그리는 작업을 수행합니다.
changeSnowPosition()
메서드는 눈의 위치를 조정하는 역할을 합니다. 각 눈에 대해서 랜덤한 방향과 거리를 지정하여 위치를 이동시킵니다. 만약 눈이 패널을 벗어나게 되면 다시 패널의 위에서 시작하도록 설정합니다.
SnowThread
클래스는 눈이 내리는 애니메이션을 담당하는 스레드입니다. 주기적으로 눈의 위치를 재조정하고, 패널을 다시 그리는 작업을 반복합니다.
main()
메서드에서는 SnowFrame
객체를 생성하여 프로그램을 실행합니다.

댓글 남기기