본문 바로가기

개인프로젝트/리듬게임만들기

[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 15.노트 판정 함수 각각의 노래의 박자에 맞게 노트를 작성합니다. @Override public void run() { dropNotes(this.titleName); // 선택된 곡 노트드랍 } public void dropNotes(String titleName) { // 선택된 곡 매개변수 Beat[] beats = null; if(titleName.equals("Again") && difficulty.equals("Easy")) { // 난이도 구분 int startTime = 1000 - Main.REACH_TIME * 1000; int gap = 125; // 1/8의 간격으로 노트드랍 beats = new Beat[] { new Beat(startTime, "S"), new Beat(startTime + gap.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 14. 박자에 맞추어 노트 찍기 노트가 떨어지는 박자를 계산하기위한 노트 데이터를 담을수 있는 노트클래스를 만듭니다. package dynamic_beat_14; public class Beat { private int time; // 노트 타이밍 변수 private String noteName; // 노트 종류 변수 public int getTime() { return time; } public void setTime(int time) { this.time = time; } public String getNoteName() { return noteName; } public void setNoteName(String noteName) { this.noteName = noteName; } public Beat(int time, Strin.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 13.노트 이동 애니메이션 노트가 떨어지는 애니메이션을 구현하기 위해 노트 클래스를 만듭니다. ArrayList noteList = new ArrayList(); // 노트 배열 생성 for(int i = 0; i < noteList.size(); i++) // 노트리스트 노트 출력 { Note note = noteList.get(i); note.screenDraw(g); } public void dropNotes(String titleName) { // 떨어지는 노트 메소드 Note note = new Note(228, "Space"); note.start(); noteList.add(note); } package dynamic_beat_13; import java.awt.Graphics2D; import java.awt.Ima.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 12.개별게임 곡 재생하기 private String titleName; // 현재 실행 곡 이름 private String difficulty; // 난이도 설정 private String musicTitle; // 음악제목 생성 private Music gameMusic; // 게임뮤직 생성 public Game(String titleName, String difficulty, String musicTitle) { // 변수 초기화 및 생성자 this.titleName = titleName; this.difficulty = difficulty; this.musicTitle = musicTitle; gameMusic = new Music(this.musicTitle, false); gameMusic.start(); } publi.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 11.키보드 입력 이벤트 리스너 package dynamic_beat_11; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class KeyListener extends KeyAdapter { // 키보드 이벤트 클래스 @Override public void keyPressed(KeyEvent e) { // 키 이벤트 감지 if(DynamicBeat.game == null) {// 현재 게임이 진행되지 않는다면 함수종료 return; } if(e.getKeyCode() == KeyEvent.VK_S) { // 누른 키 S 감지 DynamicBeat.game.pressS(); // pressS메소드 작동 } . .생략 . } @Override //키를 떼.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 10.게임화면 디자인 게임에 필요한 노트, 판정 관련 이미지를 만들어줍니다. public void screenDraw(Graphics2D g) { g.drawImage(background, 0, 0, null); if(isMainScreen) { g.drawImage(selectedImage, 340, 100, null); g.drawImage(titleImage, 340, 100, null); } if(isGameScreen) { g.drawImage(noteRouteImage, 228, 30, null); g.drawImage(noteRouteImage, 232, 30, null); g.drawImage(noteRouteImage, 436, 30, null); g.drawImage(noteRouteImage, 540, 3.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 9.뒤로가기,리팩토링 게임화면에서 이전화면으로 돌아가기위한 뒤로가기 버튼 이미지를 만듭니다. backButton.setVisible(false); // 처음에는 가리기 backButton.setBounds(20, 50, 60, 60); // 버튼 크기 위치 backButton.setBorderPainted(false); backButton.setContentAreaFilled(false); backButton.setFocusPainted(false); backButton.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { backButton.setIcon(backButtonEnteredImage); backButton... 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 8.게임화면으로 이동하기 곡 선택화면에서 게임화면으로 이동할 수 있는 버튼을 만듭니다 private ImageIcon easyButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/easyButtonEntered.png")); private ImageIcon easyButtonBasicImage = new ImageIcon(Main.class.getResource("../images/easyButtonBasic.png")); private ImageIcon hardButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/hardButtonEntered.png")); private ImageIcon.. 더보기