저는 전체적인 틀이 정해지지 않으면 뭔가 조금 찝찝한 마음이 들어서
팀프로젝트를 하면 어쩔 수 없이 일단 기능을 만들고 이미지를 완성하지만
혼자 할 때는 일 여러번 하지 않게 한 클래스씩 완성시키고 넘어가는 성향이 있어요.
다른 분들은 어떻게 하는지 아직 견문이 좁아서 잘 모르겠네요.
그러므로 오늘도 지난편에 이어서
2020/12/10 - [Java_Study/Code_Memo] - JButton으로 슈팅게임 1-1 시작 패널
미니게임 선택하는 메인 프레임 '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();
}
이제 본격적으로 게임 패널을 할 시간입니다.
물론 다음 시간 :)
'Coding_Study > Java_Code_Memo' 카테고리의 다른 글
JButton으로 슈팅게임 2-3 몬스터 1 만들기 (0) | 2020.12.11 |
---|---|
JButton으로 슈팅게임 2-2 총알 만들기 (0) | 2020.12.11 |
JButton으로 슈팅게임 2-1 주인공 만들기 (0) | 2020.12.11 |
JButton으로 슈팅게임 1-1 시작 패널 (0) | 2020.12.10 |
HashMap(1) (0) | 2020.12.02 |