Skip to content

SeJonJ/java-game-DynamicMusic

Repository files navigation

따라하면서 배우기

Java 리듬 게임 구현

재미있어 보이는 것들을 직접 따라하고 코드로 구현해보면서 공부하였습니다

해당 코드는 아래의 동빈나님의 youtube 영상을 보면서 만들었습니다. 좋은 영상 감사합니다. https://www.youtube.com/playlist?list=PLRx0vPvlEmdDySO3wDqMYGKMVH4Qa4QhR

코드에 대한 보다 자세한 정리는 본인의 블로그 https://terianp.tistory.com/ 에 올려두었습니다.

아래와 같은 부분을 공부하였습니다

  1. JFrame 을 이용한 GUI 구현 및 JFRAME 의 다양한 메서드 사용

  2. GETTER/SETTER 과 생성자를 이용한 코드 구현

  3. 자바에서 MP3 파일 재생을 위한 javazoom:jlayer:1.0.1 라이브러리 사용

  4. 게임 화면, 버튼, 배경 사진, 음악 등을 코드에 넣어서 불러오고, JAR 로 BUILD 하여 실행 가능하도록 구현

  5. ArrayList 를 사용하여 각 배열에 Track 에 해당하는 객체를 넣어두고, index 번호에 따라서 음악을 고르고 해당 음악에 맞는 정보 - 타이틀 이미지, 음악 이미지, 해당 음악 하이라이트 - 가 나오도록 설정

  6. 다양한 부분에서 ArrayList 배열을 사용함

    • 다음 음악으로 넘길 때
    • 노트 만든 후 불러올 때 등등
  7. 마우스에 행동에 따른 이벤트 구현 - 마우스를 위에 올렸을 때, 마우스로 클릭했을 때 -

  8. jar 패키징 시에도 동작 가능하도록 InputStream 활용

  9. JDBC 를 사용하여 로그인하고, 로그인 후 해당 사용자로 음악 게임 종료 시 점수를 저장할 수 있도록 함

  10. THREAD 를 사용하여 각 기능들을 Thread 를 통해서 개별적으로 구현 및 실행

진행 상황

  1. 시작 화면에서 intro 음악 재생

  2. 시작 화면에서 '시작하기', '종료하기',왼쪽 위 종료 버튼 구현

  3. 시작하기 버튼을 눌렀을 때 음악 선택 화면으로 이동

  4. 음악 선택 화면 - 이하 메인 화면 - 에 음악을 2개를 놓고 왼쪽 버튼과 오른쪽 버튼을 눌러 음악을 선택할 수 있도록 함

  5. 음악 선택 시 해당 음악의 하이라이트 부분이 나오도록 함

  6. 음악 선택 후 게임 화면으로 이동 및 게임에 맞는 배경, 출력

  7. 키보드 눌렀을 때 해당 키보드 이벤트 출력, 키보드별 음악 재생

  8. 노트 판정 기능 : 노트 판정 시 이미지, 판정 별 이미지 등

  9. jar 로 패키징 후 동작 확인 => jre 없이 단독 실행은 불가능

  10. 게임 점수 및 콤보 표시

    • 게임 화면 아래 표시 => Graphic.drawImage
    • 오른쪽에 콤보 표시 => Graphic.drawString
  11. 게임 플레이 모드, 노트 찍기 모드 개별 구현

    • 노트 찍기 모드 : noteMaker = true 로 둘 시 resources/readNote/ 안에 '노래명'_'난이도'.txt 로 파일 생성. 파일에는 노트를 찍는 시간 + 찍은 노트(버튼)이 저장됨
    • 게임 플레이 모드 : 노트 찍기 모드에서 내가 찍어둔 노트를 그대로 읽어와서 게임 노트를 출력해줌 => ArrayList 및 InputStream in , BufferedReader, StringTokenizer 사용
  12. JDBC Mysql 연동

    • JDBC 를 이용해서 MySQL과 연동하여 로그인 후 게임 이용이 가능하도록 설정
    • MySQL 에서 연동되는 DB는 MyWeb 과 동일한 DB
  13. URL 객체와 Image 를 사용하여 인트로 배경화면을 gif 로 구현

  14. 음악 종료 시 현재 점수 및 현재 콤보 수 출력

  15. 음악 종료 시 로그인한 사용자로 점수 및 콤보 저장

  16. 게임 별 SCORE BOARD 출력 : 점수 상위 5명 출력

앞으로의 목표 - 장기

  1. exe 파일로 jre 없이 단독 실행 가능하도록 => 이건 불가능할듯...

  2. DB 연결을 통해 My web 과 연동 후 로그인하여 게임 플레이 가능하도록

  3. 코드 리펙토링

주의점

  • 해당 코드에는 /resources/game_music 및 menu_music , game_image 부분이 빠져있습니다. 이는 저작권에 맞는 음악을 사용한게 아니라 제가 좋아하는 노래들로 다운받아서 넣어두었기 때문입니다.
  • 이 때문에 해당 코드를 사용하신다면, game_music 및 menu_music game_image 를 만드시고 해당 디렉토리 안에 음악과 음악별 이미지를 넣어주셔야 합니다.
  • 음악은 반드시 mp3!!

About

Java 로 만드는 음악 게임

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages