Skip to content

Latest commit

 

History

History
159 lines (114 loc) · 4.82 KB

File metadata and controls

159 lines (114 loc) · 4.82 KB

리듬 게임 (Java Swing)

Java Swing으로 제작된 간단하면서도 재미있는 리듬 게임입니다.

🎮 게임 소개

4개의 레인에서 떨어지는 노트를 정확한 타이밍에 맞춰 타격하는 리듬 게임입니다. 점수와 콤보를 쌓아가며 높은 등급을 목표로 해보세요!

🎯 게임 특징

  • 4레인 리듬 게임: D, F, J, K 키를 사용한 직관적인 조작
  • 실시간 판정 시스템: PERFECT, GOOD, MISS 판정
  • 콤보 시스템: 연속 성공 시 점수 보너스
  • 등급 시스템: S부터 F까지의 성과 평가
  • 일시정지 기능: ESC 키로 게임 일시정지/재개
  • 깔끔한 UI: 현대적이고 직관적인 사용자 인터페이스

🎮 조작법

  • D, F, J, K: 각 레인의 노트 타격
  • ESC: 게임 일시정지/재개
  • ENTER: 결과 화면에서 메뉴로 돌아가기

📁 프로젝트 구조

javaMax2/
├── src/
│   └── main/
│       ├── RhythmGame.java          # 메인 클래스
│       ├── game/                    # 게임 로직
│       │   ├── GameEngine.java      # 게임 엔진
│       │   ├── GameState.java       # 게임 상태 열거형
│       │   ├── Note.java            # 노트 클래스
│       │   └── ScoreManager.java    # 점수 관리
│       ├── ui/                      # 사용자 인터페이스
│       │   ├── GameFrame.java       # 메인 프레임
│       │   ├── MenuPanel.java       # 메뉴 화면
│       │   ├── GamePanel.java       # 게임 화면
│       │   └── ResultPanel.java     # 결과 화면
│       ├── audio/                   # 오디오 시스템
│       │   └── AudioManager.java    # 오디오 관리
│       └── utils/                   # 유틸리티
│           ├── Constants.java       # 상수 정의
│           └── ImageLoader.java     # 이미지 로더
├── resources/                       # 리소스 파일
│   ├── images/                      # 이미지 리소스
│   │   ├── backgrounds/             # 배경 이미지
│   │   ├── notes/                   # 노트 이미지
│   │   └── ui/                      # UI 이미지
│   └── audio/                       # 오디오 리소스
│       ├── music/                   # 배경음악
│       └── effects/                 # 효과음
└── README.md                        # 프로젝트 설명서

🚀 실행 방법

요구사항

  • Java 8 이상
  • Java 개발 환경 (IDE 또는 터미널)

컴파일 및 실행

  1. 컴파일:

    javac -cp . src/main/*.java src/main/*/*.java
  2. 실행:

    java -cp src main.RhythmGame

IDE에서 실행

  1. 프로젝트를 IDE로 열기
  2. src/main/RhythmGame.java 파일의 main 메서드 실행

🎵 리소스 추가 방법

이미지 파일 추가

  • resources/images/backgrounds/: 배경 이미지 (.png, .jpg)
  • resources/images/notes/: 노트 이미지 (.png)
  • resources/images/ui/: UI 요소 이미지 (.png)

오디오 파일 추가

  • resources/audio/music/: 배경음악 (.wav)
  • resources/audio/effects/: 효과음 (.wav)

🎮 게임 플레이 가이드

판정 시스템

  • PERFECT: 정확한 타이밍 (±10 프레임)
  • GOOD: 양호한 타이밍 (±20 프레임)
  • MISS: 타이밍을 놓침 (±30 프레임 이상)

점수 계산

  • PERFECT: 300점 + 콤보 보너스 (×10)
  • GOOD: 100점 + 콤보 보너스 (×5)
  • MISS: 0점, 콤보 리셋

등급 시스템

  • S등급: 98% 이상
  • A등급: 95% 이상
  • B등급: 90% 이상
  • C등급: 80% 이상
  • D등급: 70% 이상
  • F등급: 70% 미만

🛠️ 기술적 특징

게임 엔진

  • 60 FPS 타이머 기반 게임 루프
  • 실시간 노트 생성 및 판정
  • 동적 난이도 조절 (시간에 따른 노트 생성 빈도 증가)

UI/UX

  • 카드 레이아웃을 이용한 화면 전환
  • 부드러운 그라디언트와 안티앨리어싱
  • 실시간 키 입력 피드백
  • 시각적 판정 표시

오디오 시스템

  • Java Sound API 기반
  • 배경음악과 효과음 분리 관리
  • 볼륨 조절 기능
  • 실시간 사운드 재생

🔧 확장 가능성

  • 차트 시스템: 외부 파일에서 노트 패턴 로드
  • 음악 동기화: 음악 비트에 맞춘 노트 생성
  • 멀티플레이: 여러 플레이어 동시 플레이
  • 스킨 시스템: 사용자 정의 테마
  • 레벨 에디터: 사용자가 직접 패턴 제작

📝 라이선스

이 프로젝트는 교육 목적으로 제작되었습니다.

👥 기여

버그 리포트나 개선 제안은 언제든 환영합니다!


즐거운 리듬 게임 되세요! 🎵