본문 바로가기
프로그래밍 언어/Java

자바 게임 만들기 - '벽돌과 사다리' 게임 구현해보기 #1

by Kallunar 2022. 2. 18.

아는 사람만 안다는 고전게임 벽돌과 사다리
초딩 때 야후 꾸러기에서 했던 게임으로
알피라는 캐릭터가 몬스터들을 피해 과일을 먹게 하는 게임이다

당시 굉장히 재밌게 했던 기억이 있는데
세월이 지나 이제는 찾아볼 수 없게 되었다

는 뻥이고 사실 구글링해보면 나오긴 한다
그런데 이 게임이 돌아가던 환경이 겁나게 옛날 것이기 때문에
플레이를 위해서는 IE가 필요하고 뭔가 설정이 필요하던데
나는 시키는 대로 해도 실행이 안 되더라...

그래서 자바를 공부한 김에 한 번 직접 구현해보기로 했다
찾아보니 이 게임이 9단계까지 있던데
초짜인 나에겐 너무 많으니 그냥 1단계만 해보기로 함 ㅇㅅㅇ

 

1. 기본 화면 구성 및 맵 그리기

 

기본 화면 크기는 좀 크게 잡아봄
(1280 X 680)

여기서 BricksAndLadders 객체를 생성함으로써 시작

 

BricksAndLadders 클래스에서 JFrame과 더블 버퍼링을 이용하여 화면을 생성하고 그린다
(적당히 더블버퍼링 진행 방식을 이해한대로 주석을 적어놨는데 맞는지 모르겠다)

이렇게 하여 위 사진에 나온 것처럼 푸른 배경 칠하기는 성공했다

이어서 구체적으로 맵을 그리기 위한 벽돌과 사다리 이미지를 추가했다

 

drawImage로 위치에 맞게 벽돌과 사다리를 그려주었다

 

2. 아이템 그리기


이제 바나나와 포도를 그려보자

class Fruit

 

class Banana

 

class Grape

바나나와 포도의 클래스 구조는 똑같다
얘네들을 하나의 리스트에서 다루기 위해 Fruit 클래스를 상속받게 했다

 

이러한 아이템들을 그리기 위하여 Stage 클래스를 정의하고
이 아이템들을 담을 리스트를 만들고, 이에 대한 getter를 생성했다
아이템 객체를 생성하여 리스트에 담기 위하여 메서드 makeItems를 정의했다 

 

그 아래로는 이렇게 생성된 아이템을 실제로 그려주는 drawItems 메서드를 정의했다

그리고 run 메서드를 오버라이딩 하여 스레드 실행 시
makeItems를 이용하여 아이템을 생성하도록 했다

 

이제 BricksAndLadders 클래스에서 Stage 객체를 생성하고, 생성자에 stage.start() 메서드를 추가하여
프로그램 실행 시 Stage 스레드를 실행시키도록 한다

 

이어서 drawItems 메서드도 추가하여 맵에 생성된 아이템이 그려지게 한다

 

3. 알피 캐릭터 그리기

사용할 이미지로는 각 방향에 따라 세 가지씩 준비했다
그리고 적절하게 변수 선언도 해준다

 

필요한 getter와 setter 생성

 

이제 Alfy 객체를 생성하고
초기 위치와 방향, 이미지를 BricksAndLadders 클래스의 생성자에서 설정해준다

 

screenDraw에 알피를 그리는 drawImage를 추가해줬다

댓글