본문 바로가기

Coding_Study/Java_Code_Memo

JButton으로 슈팅게임 1-2 시작 패널 마무리

저는 전체적인 틀이 정해지지 않으면 뭔가 조금 찝찝한 마음이 들어서

팀프로젝트를 하면 어쩔 수 없이 일단 기능을 만들고 이미지를 완성하지만

혼자 할 때는 일 여러번 하지 않게 한 클래스씩 완성시키고 넘어가는 성향이 있어요.

다른 분들은 어떻게 하는지 아직 견문이 좁아서 잘 모르겠네요.

 

 

그러므로 오늘도 지난편에 이어서

2020/12/10 - [Java_Study/Code_Memo] - JButton으로 슈팅게임 1-1 시작 패널

 

JButton으로 슈팅게임 1-1 시작 패널

그래픽에 두려움을 가진 사람으로서, 버튼으로 슈팅게임 만들기에 도전하기로 했어요! 이제 막 자바 공부 한 달 차로, 알고있는 선에서 만드는 것이므로, 수정이 필요한 부분은 조언 부탁드립니

mintpearl-story.tistory.com

미니게임 선택하는 메인 프레임 'Main_StartHere'

거기에 붙이는 첫 페이지 'Main_FirstPage'

미니게임 1번 _ 게임 컨셉을 알리는 패널 'GameYun_MainPnl'

 

 

여기에 그 다음 페이지 'MainPnl2'를 붙여볼 거예요.

- 간단한 게임설정과 키를 넣은 사진 작업

- 패널에 깔아주고.위에 돌아가기, 시작하기 버튼을 달아줌

   (기본적으로 저번편과 같음)

package Game1;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;

import miniGame_Main_ChooseGame.Main_StartHere;

public class MainPnl2 extends JPanel implements ActionListener{

	Main_StartHere main;
	private Image backgroundImage; //배경 이미지
	private JButton btnGo, btnBack;
	
	public MainPnl2(Main_StartHere main){
		this.main = main;
		this.setSize(500,800);
		this.setLayout(null);
		
		try {//배경 이미지 삽입
			backgroundImage = ImageIO.read(new File("선택페이지.jpg"));
		} catch (IOException e) {
			e.printStackTrace();
		}
        
		makeBtns(); //버튼 메소드
		
	}
	
	private void makeBtns() { //버튼 작업
		btnBack = new JButton();
		btnGo = new JButton();
		
		btnBack.setBounds(270, 425, 170, 50);
		btnGo.setBounds(270, 485, 170, 50);
		
		btnBack.setBorderPainted(false); 
		btnGo.setBorderPainted(false);
		
		btnBack.setFocusPainted(false); 
		btnGo.setFocusPainted(false); 
		
		btnBack.setContentAreaFilled(false);
		btnGo.setContentAreaFilled(false);
		
		btnBack.addActionListener(this);
		btnGo.addActionListener(this);
		
		this.add(btnBack);
		this.add(btnGo);
	}
	
	@Override
	protected void paintComponent(Graphics g) {	 //이미지 작업
		super.paintComponent(g);
		g.drawImage(backgroundImage,0,0,500,800,null);			
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == btnBack) { //첫 화면으로
			main.MainPnl2ToNext(1);
		} else if (e.getSource() == btnGo) { //게임 화면으로
			main.MainPnl2ToNext(2);
		}
	}

}

- 메인 (Main_StartHere)에 연결 메소드 추가

	public void MainPnl2ToNext(int i) { //메인 패널에서 첫화면/게임화면 이동
		this.remove(main2);
		if (i == 1) { //첫 화면으로
			this.add(firstPage); 
		} else if (i ==2) { //게임 화면으로
			playPhase1 = new Play_Phase1(this);
			this.add(playPhase1); 
		}
		this.repaint();
		this.revalidate();
	}

이제 본격적으로 게임 패널을 할 시간입니다.

물론 다음 시간 :)