- 팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(5)>2024년 05월 20일
- Song hyun
- 작성자
- 2024.05.20.:02
728x90반응형팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트:
팩맨(PacMan) 게임 구현하기(5)>
1. 현황 및 구현한 기능들
2. 리팩토링 및 미완성 기능 보완하기
1. 현황 및 구현한 기능들
main game 클래스 외에도 여러 패널이 추가되고, enemy(적 캐릭터)의 수와 메커니즘도 조금씩 바뀌면서 여러 오류들이 발생했다. 그래도 여러 우여곡절 끝에 우리는 팩맨의 전체적인 기능들을 구현할 수 있었다. 그간 제작한 기능들은 아래와 같다.
메인 화면 플레이어 에너미 메인 화면, 플레이어, 에너미 클래스의 자잘한 오류들 수정 반전 아이템(과일) 구현 플레이어의 점수 및 라이프(목숨) 구현 에너미 중앙에서 생성 전 판의 최고 점수 출력 플레이어 정지 지 중 데미지 구현 에너미 스크림 이미지 추가 마감 기한이 촉박하기도 했고, 전체적인 기능이 구현&오류들을 수정했기 때문에 리팩토링 및 미완성된 기능들에 집중하기로 했다!
2. 리팩토링 및 미완성 기능 보완하기
(1) 게임 재시작 시, 초기 화면이 반복되며 게임 플레이 화면(mainGame)으로 넘어가지 않음
첫번째 오류는 게임 재시작 시,게임 시작 화면이 반복되고, 플레이 화면으로 넘어가지 않는 오류였다. 해당 오류를 로깅을 통해 해결했던 기억이 난다.
처음에는 시간이 문제인지, 다른 조건들이 문제인지 알 수 없었기 때문에, 초와 로깅 메세지가 함께 출력되게끔 작성해 오류의 원인을 찾아냈다. (아래의 코드를 보면 시간의 길고 짧음이 아닌 다른 조건이 오류의 원인임을 알 수 있다.) 팀장님과 함께 로깅하며 오류를 찾았던 기억이 난다.
(2) Player가 과일 아이템을 중복해서 먹을 시, 게임 점수가 오르지 않음
두 번째로 기억에 남았던 오류는, Player가 과일 아이템을 중복해서 먹을 때 점수가 오르지 않는 것이었다. 이는 동시에 과일 먹음-> Strong state로 변환(적을 먹을 수 있는 상태) <-과도 연관이 있었다. 그 때문인지, 이 때 과일을 중복해서 먹을 때 멀티 스레딩 오류가 발생하기도 했다.
그래서 Strong이라는 변수를 만들어, 과일 아이템 섭취 및 Strong 상태를 제어할 수 있게끔, 아래와 같은 코드를 작성하게 되었다.
(3) 리팩터링
아직 리팩터링을 깊게 배우지 않았기 때문에, 코드 컨벤션(함수명 맞추기, 대소문자 체크 등)을 맞추고, 불필요한 코드들을 걷어낸 뒤, 쓰지 않는 Getter/Setter 메서드들을 삭제하는 방식으로 리팩터링을 진행했다.
728x90반응형'💡My project > 팩맨 : Java Swing 게임 제작 프로젝트' 카테고리의 다른 글
다음글이전글이전 글이 없습니다.댓글