메인화면에서 곡을 선택해서 게임을 시작하는 게임화면 디자인을 구현합니다.
mp3형식의 게임곡 3곡과 각각의 곡마다 소개와 게임 2개의 이미지를 준비합니다.
private ImageIcon leftButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/leftButtonEntered.png"));
private ImageIcon leftButtonBasicImage = new ImageIcon(Main.class.getResource("../images/leftButtonBasic.png"));
private ImageIcon rightButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/rightButtonEntered.png"));
private ImageIcon rightButtonBasicImage = new ImageIcon(Main.class.getResource("../images/rightButtonBasic.png"));
// 곡 선택 왼쪽,오른쪽 버튼이미지 변수 추가
private Image titleImage = new ImageIcon(Main.class.getResource("../images/Again Title Image.png")).getImage();
// 게임 곡 이름 이미지 변수 초기화
private Image selectedImage = new ImageIcon(Main.class.getResource("../images/Again Start Image.png")).getImage();
// 곡 선택 이미지 변수 초기화
private Image background = new ImageIcon(Main.class.getResource("../images/introBackground(Title).jpg")).getImage();
private JLabel menuBar = new JLabel(new ImageIcon(Main.class.getResource("../images/menuBar.png")));
private JButton leftButton = new JButton(leftButtonBasicImage);
private JButton rightButton = new JButton(rightButtonBasicImage);
// 곡 선택 왼쪽,오른쪽 버튼 초기화
private boolean isMainScreen = false; // 초기화면 기본값 설정 추가
// startButton 기능 추가
@Override
public void mousePressed(MouseEvent e) {
Music buttinEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttinEnteredMusic.start();
startButton.setVisible(false);
quitButton.setVisible(false);
leftButton.setVisible(true); // 왼쪽버튼 보이기
rightButton.setVisible(true); // 오른쪽 보이기
background = new ImageIcon(Main.class.getResource("../images/mainBackground.jpg")).getImage();
isMainScreen = true; // 선택 곡 메인이미지로 변환
}
});
add(startButton);
// 왼쪽버튼 생성, 오른쪽 버튼 동일
leftButton.setVisible(false); // 처음화면에서 가리기
leftButton.setBounds(140, 310, 60, 60); // 버튼 위치 설정
leftButton.setBorderPainted(false);
leftButton.setContentAreaFilled(false);
leftButton.setFocusPainted(false);
leftButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
leftButton.setIcon(leftButtonEnteredImage);
leftButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttinEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttinEnteredMusic.start();
}
@Override // 왼쪽버튼 이벤트 설정
public void mouseExited(MouseEvent e) {
leftButton.setIcon(leftButtonBasicImage);
leftButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttinEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttinEnteredMusic.start();
// 왼쪽 버튼 이벤트
}
});
add(leftButton);
// 움직임이 있는 이미지 변화는 g.drawImage메소드를 통해 구현
// 고정된 이미지는 paintComponents메소드를 통해 구현
public void screenDraw(Graphics g) {
g.drawImage(background, 0, 0, null); // 이미지파일을 출력하는 메소드
if(isMainScreen) { // true인 경우 곡선택 화면전환
g.drawImage(selectedImage, 340, 100, null); // 곡선택 이미지
g.drawImage(titleImage, 340, 100, null); // 곡이름 이미지
}
paintComponents(g); // add로 추가된 부분을 보여주는 메소드
this.repaint();
}
}
'개인프로젝트 > 리듬게임만들기' 카테고리의 다른 글
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 8.게임화면으로 이동하기 (0) | 2024.02.13 |
---|---|
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 7. 곡 선택 기능구현 (0) | 2024.02.13 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 5. 화면전환 (0) | 2024.02.06 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 4. 메뉴 바 구현 (0) | 2024.02.05 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 3. 시작화면에 음악 삽입 (0) | 2024.02.05 |