Back-End/GUI

[JAVA] 2D GAME (RPG)_3일차

Dev-RiQ 2024. 12. 14. 00:34

오늘은 기존 작업했던 부분에서 UI 추가, Item 추가(Object), sound 추가를 진행했다.

1차적으로 게임 시작부터 종료까지 기초적인 부분을 완성한 것이다.

 

먼저, 오브젝트인 신발과, 보물상자, 문, 문을 열기 위한 열쇠까지 총 4가지를 추가했다. 

 

 

각 오브젝트는 try catch를 이용해 이미지를 불러올 수 있도록 만들었다.

 

그 중 Door는 키가 없으면 지나갈 수 없기에 collision을 따로 설정했다.

기초 설정이 완료 된 오브젝트들은 SuperObject 클래스를 만들어 따로 관리할 수 있도록 만들었다.

 

오브젝트의 범위 및 위치 값 변수 지정 및 출력 메소드를 작성해주었다.

해당 오브젝트들의 구분과 위치 값 설정은 별도 클래스로 관리할 수 있게 만들어져있다.

키 3개, 도어 3개, 박스 1개, 신발 1개

추가로 오브젝트 콜리젼 체크를 위한 클래스도 기존 콜리젼 클래스와 별도로 만들어주었고,

플레이어 좌표 기준의 플레이어 판정 범위와 오브젝트 판정 범위를 설정해 주었다.

 

* 여기서 java gui는  좌측 상단(코너)를 좌표 기준으로잡기에 상, 하, 좌, 우 기준 값을 추가로 정해줘야 한다.

 

이후 오브젝트와 플레이어가 판정이 닿으면 해당 위치의 오브젝트 인덱스를 반환받아

플레이어가 오브젝트에 닿을 때 변화를 일으킬 수 있도록 만든다.

 

해당 변화가 있을 시 텍스트UI가 표출 될 수 있도록

UI 클래스를 만들어주어 폰트 및 표출 위치 및 지속 시간 등등 몇 가지 설정을 추가해준다.

그 후 draw되도록 기존의 paint 클래스에 추가해준다. (배경보다 위에 나와야 하니 배경 -> 오브젝트 -> 캐릭터 순)

세세하게 뭔가 더 많지만,, 아직 완벽히 흡수하지 못해 설명에 한계.. 그리고 하다보면 길어질 것 같기에..

 

아무튼 모두 설정하고 wav파일로 사운드 까지 입혀주면~~

 

 

완성~

빨라짐

 

종료 메세지

 

GIF라 끊겨보이지만 실제론 60FPS라 생각보다 많이 부드럽다

맨날 콘솔창으로 예쁘게 출력하려고 코드 길게 쓰면서 놀았는데..

이젠 입력 엔터 안해도 즐길 수 있는 컨텐츠를 어느정도 만들 수 있게 되었다..!

일단 이 게임 튜토리얼 영상도 아직 많이 남았고 추가할게 한참 남았으니 계속 업데이트 해볼 예정이고,

추가로 기존에 만든 콘솔 게임들도 한번 GUI로 시도해 볼 예정이다 !

 

실제 플레이 영상

 

아직은 그저 따라하고 어느정도 이해한 정도지만..

나중에는 얼추 이거해볼까? 하면 조로록 써내려가는 경지에 이르길 기원하며

해당 튜토리얼게임 업데이트와 새로운 프로그램들도 기대해주세요..!

 

더 자세한 코드는 여기서! >> https://github.com/Dev-RiQ/myFirst2DGame.git

 

----------------------

조작감은 어떻게 더 이상 건드릴 방도가 떠오르지 않아 살짝 불편하지만

혹시나 jdk나 java가 설치되어 있는데 해보고 싶다...... 하실까봐 (과연)

jar 파일과 exe 파일로 준비해 보았습니다.. 

First_Java_2DGame_semiComplete.jar
9.15MB
First_Java_2DGame_semiComplete.exe
9.21MB