https://github.com/seongwonp/pacman
JAVA GUI를 이용한 간단한 팩맨 게임입니다.
https://github.com/seongwonp/pacman
java jframe swing-gui
Last synced: 9 months ago
JSON representation
JAVA GUI를 이용한 간단한 팩맨 게임입니다.
- Host: GitHub
- URL: https://github.com/seongwonp/pacman
- Owner: Seongwonp
- License: mit
- Created: 2025-03-25T11:13:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-12T13:39:42.000Z (10 months ago)
- Last Synced: 2025-09-12T16:04:18.522Z (10 months ago)
- Topics: java, jframe, swing-gui
- Language: Java
- Homepage:
- Size: 1.56 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 👾 팩맨 게임 – Java GUI 프로젝트

이 프로젝트는 Java를 활용해 구현한 간단한 팩맨 게임입니다.
처음에는 고객 관리 시스템을 구상하는 데 어려움을 느껴,
게임에 대한 관심을 바탕으로 GUI 개발을 직접 경험해보고자 선택한 과제입니다.
---
## 🛠️ 사용 기술
- Java (JDK)
- AWT / Swing GUI 프레임워크
- 이벤트 기반 프로그래밍 (`KeyListener`, `ActionListener`)
- `ImageIcon`을 활용한 객체 렌더링
- Java Sound API를 통한 배경음악 및 효과음 구현
---
## 🎮 게임 기능
- `JLabel[][]`을 활용한 14×14 타일 기반 맵
- 방향키로 팩맨 조작
- 팩맨이 점을 모두 먹으면 승리
- 적은 랜덤하게 움직이며, 충돌 시 게임 오버
- 승리/패배 시 다른 이미지 출력
- 배경음악 및 효과음으로 몰입도 향상
- "Big Dot" 기능 오류 수정으로 부드러운 플레이 제공
---
## 🔧 개발 포인트
- `switch-case`와 난수 생성으로 적의 랜덤 이동 구현
- 벽 및 적과의 충돌 판정 로직 설계
- 커스텀 아이콘과 사운드를 활용한 시각/청각적 경험 강화
- 기존 코드의 버그 수정 (예: 승리 화면 미출력, Big Dot 이동 불가 문제 해결)
---
## 📸 게임 화면
### 🟡 시작 화면

### 🟡 팩맨 플레이 중

### 🟢 승리 화면 (`Succession` 객체)

### 🔴 패배 화면 (`Fail Icon` 객체)

---
## 💭 회고
팩맨 게임을 만들면서 처음으로 Java GUI를 본격적으로 다뤄보게 되었습니다.
처음엔 화면에 이미지를 띄우고 키보드 입력을 받는 것조차 낯설었지만,
하나씩 구현해 나가면서 점점 흐름이 보이기 시작했습니다.
AWT와 Swing을 이용해 맵을 구성하고, 이벤트 리스너로 팩맨을 움직이며
게임의 기본적인 틀을 잡아가는 과정이 꽤 재밌었습니다.
적의 랜덤 이동이나 충돌 판정 같은 로직은 생각보다 복잡했지만,
직접 고민하고 디버깅하면서 해결해 나가는 경험이 많이 도움이 되었습니다.
특히 승리와 패배 조건을 처리하고, Big Dot 관련 버그를 수정하면서
단순히 기능을 구현하는 걸 넘어서 **사용자 입장에서 자연스럽게 느껴지는 흐름**을 만드는 게 얼마나 중요한지 깨달았습니다.
이미지와 사운드를 추가하면서 몰입감도 높아졌고,
“내가 만든 게임을 직접 플레이한다”는 즐거움도 컸습니다.
이번 프로젝트를 통해 GUI 프로그래밍에 대한 감이 많이 생겼고,
다음엔 더 다양한 상호작용이나 애니메이션이 들어간 게임도 만들어보고 싶습니다.
예를 들어, 여러 레벨이 있는 퍼즐 게임이나, 간단한 RPG처럼
**상태 관리와 이벤트 흐름이 더 복잡한 구조**를 직접 설계해보는 것도 흥미로울 것 같습니다.
무엇보다도, 내가 직접 만든 결과물이 눈에 보이고 작동한다는 경험은
프로그래밍을 더 재미있게 느끼게 해주는 원동력이 된 것 같습니다.
---
## 📚 참고 자료
- 『명품 JAVA Programming 4판』 – 황기태, 김효수
- [Java Sound API 설명](https://micropilot.tistory.com/2414)
- [Pac-Man 샘플 코드 참고](http://koreaparks.tistory.com/83)
- [Java GUI 튜토리얼 (Swing, AWT)](https://bskwak.tistory.com/181)
---
## 🙋♂️ 작성자
**박성원 (Seongwon Park)**
- Java GUI 개발 실습
- 이벤트 처리 및 이미지/사운드 활용
- 게임 로직 설계 및 디버깅 경험
---