왼쪽 오른쪽 버튼을 눌러서 곡을 선택할 수 있도록 기능을 구현합니다.
startButton기능에서 곡 선택 화면에 들어가면 메인음악이 꺼지고 선택곡의 하이라이트가 나오도록 합니다.
@Override
public void mousePressed(MouseEvent e) {
Music buttinEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttinEnteredMusic.start();
introMusic.close(); // 곡선택 화면에서 메인음악 끄기
Music selectedMusic = new Music("Again Selected.mp3", true);
selectedMusic.start(); // 곡 하이라이트 재생
selectTrack(0);
startButton.setVisible(false);
quitButton.setVisible(false);
leftButton.setVisible(true);
rightButton.setVisible(true);
background = new ImageIcon(Main.class.getResource("../images/mainBackground.jpg")).getImage();
isMainScreen = true;
}
곡을 선택시 곡이 변경하기위해 Track클래스를 만들어서 객체지향적 기능을 구현합니다.
곡에 대한 정보를 담아 놓은 객체를 생성합니다.
public class Track {
private String titleImage; // 제목 부분 이미지
private String startImage; // 게임 선택창 표지 이미지
private String gameImage; // 해당 곡을 실행했을 때 표지 이미지
private String startMusic; // 게임 선택 창 음악
private String gameMusic; // 해당 곡을 실행했을 떄 음악
// 변수생성
public String getTitleImage() { // getter,setter 생성
return titleImage;
}
public void setTitleImage(String titleImage) {
this.titleImage = titleImage;
}
public String getStartImage() {
return startImage;
}
public void setStartImage(String startImage) {
this.startImage = startImage;
}
public String getGameImage() {
return gameImage;
}
public void setGameImage(String gameImage) {
this.gameImage = gameImage;
}
public String getStartMusic() {
return startMusic;
}
public void setStartMusic(String startMusic) {
this.startMusic = startMusic;
}
public String getGameMusic() {
return gameMusic;
}
public void setGameMusic(String gameMusic) {
this.gameMusic = gameMusic;
}
public Track(String titleImage, String startImage, String gameImage, String startMusic, String gameMusic) { // 곡 생성자
super();
this.titleImage = titleImage;
this.startImage = startImage;
this.gameImage = gameImage;
this.startMusic = startMusic;
this.gameMusic = gameMusic;
}
}
Track클래스
ArrayList<Track> trackList = new ArrayList<Track>(); // 곡 정보리스트 사용
private Music selectedMusic;
private Image titleImage;
private Image selectedImage;
private int nowSelected = 0; // 첫번째 곡 최초 선택
// Track 관련 변수 선언
trackList.add(new Track("Again Title Image.png", "Again Start Image.png", "Again Game Image.png", "Again Selected.mp3", "Again.mp3"));
trackList.add(new Track("Higher Title Image.png", "Higher Start Image.png", "Higher Game Image.png", "Higher Selected.mp3", "Higher.mp3"));
trackList.add(new Track("The Christmas Title Image.png", "The Christmas Start Image.png", "The Christmas Game Image.png", "The Christmas Selected.mp3", "The Christmas.mp3"));
// 곡 리스트 변수 초기화 저장
public void selectTrack(int nowSelected) {
if(selectedMusic != null)
selectedMusic.close(); // 실행중인 곡 종료
titleImage = new ImageIcon(Main.class.getResource("../images/" + trackList.get(nowSelected).getTitleImage())).getImage();
// 현재 선택된 곡의 제목 이미지값을 선택
selectedImage = new ImageIcon(Main.class.getResource("../images/" + trackList.get(nowSelected).getStartImage())).getImage();
// 현재 선택된 곡의 타이틀 이미지값을 선택
selectedMusic = new Music(trackList.get(nowSelected).getStartMusic(), true);
// 현재 선택된 곡 음원 선택
selectedMusic.start();
}
Track select
'개인프로젝트 > 리듬게임만들기' 카테고리의 다른 글
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 9.뒤로가기,리팩토링 (0) | 2024.02.13 |
---|---|
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 8.게임화면으로 이동하기 (0) | 2024.02.13 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 6.곡 선택 화면 디자인 (1) | 2024.02.06 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 5. 화면전환 (0) | 2024.02.06 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 4. 메뉴 바 구현 (0) | 2024.02.05 |