본문 바로가기

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

[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 6.곡 선택 화면 디자인

메인화면에서 곡을 선택해서 게임을 시작하는 게임화면 디자인을 구현합니다.

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();
	}
}