비주얼 프로그래밍
(비주얼 프로그래밍 프로젝트 보고서)
“창원대 오늘 뭐 먹지?”
담당교수 : 박동규 교수님
목 차
I. 기획 동기
II. 프로그램 구성
III. 소스코드 ( 기능설명 )
8조
20153029 임지현
20173025 이혜정
I. 기획 동기
 많은 대학생들이 종강 날만을 바라보며 끊임없는 과제와 짜인 시간표에 맞추어 지루하고 반복된
일상을 보내고 있습니다. 
 대부분의 학생들은 그 일상에 대해서 작게나마 보상심리를 갖고 있습니다. 어떤 학생은 자기 전에
 음악을 듣기도 하고, 어떤 학생은 독서를 하기도 합니다. 또 큰 의미는 없지만 잠이 들기 전까지 
스마트 폰을 보곤 합니다.
 그중 많은 학생들이 맛있는 식사를 하는 것만으로도 지루하고 반복된 일상의 원동력을 얻는 것
같다는 생각이 들었습니다. 강의가 끝나고 나면 항상 "뭐 먹을래?" , "오늘 뭐 먹지?" 하는 이야기
가 자주 들리기도 했고, 항상 식사를 결정할 때 다수의 기호를 고려한 나머지 결정하는 시간이 오
래 걸리는 것을 보았습니다.
 이런 생각을 갖고 있는 찰나에 자바 프로그래밍을 이용한 프로그래밍을 만들 기회가 생겼고, 이
와 관련된 의미 있는 프로젝트를 만들고 싶었습니다. 그래서 저희는 간단한 흥미 유발 게임과 식단
표를 한식, 중식, 일식으로 나눠서 만들어보게 되었습니다. 
II. 프로그램 구성
창원대 오늘 뭐 먹지?
= 미니게임 + 메뉴
미니게임을 누르면 ‘51호관 삼각이의 탈출’ 미니게임이 실행됩니다.
<실행>
시간이 지날수록 체력이 감소하고, 장애물에 부딪힐 때도 감소합니다.
<조작법>
↑방향키를 누르면 점프가 됩니다.
↓ 방향키를 누르면 슬라이딩이 됩니다.
ESC 키를 누르면 계속하기, 나가기, 소리 (ON / OFF) 기능 버튼이 실행됩니다.
게임이 종료되면 먹은 획득삼각과 게임시간을 합쳐서 총 점수가 나옵니다.
그 후 재도전 또는 나가기 버튼을 누르시면 됩니다.
메뉴를 누르면 ‘메뉴판’ 창이 뜹니다.
<메뉴>
한식, 중식, 일식 버튼이 실행됩니다.
<한식, 중식, 일식>
각각의 한식, 중식, 일식 버튼을 누르면 각각의 메뉴창이 실행됩니다.
III. 소스코드
<메인화면>
import java.awt.Color;
import java.awt.Container;
import java.awt.Image
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main extends JFrame{
ImageIcon image
JLabel imageLabel
public Main() {
image = new ImageIcon("image/메인.gif");
imageLabel = new JLabel(image);
setTitle("창원대오늘뭐먹지);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
container.setLayout(null);
//container.setBackground(new Color(112,222,195)); // new Color(112,222,195)
JButton btn1 = new JButton("미니게임");
JButton btn2 = new JButton("메뉴");
btn1.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
MyFrame myframe = new MyFrame();
myframe.go();
}
});
btn1.setBounds(25,450,150,30);
btn1.setBackground(new Color(112,222,195));
btn1.setForeground(Color.white);
btn2.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
Main2 main2 = new Main2();
}
});
btn2.setBounds(200,450,150,30);
btn2.setBackground(new Color(112,222,195));
btn2.setForeground(Color.white);
imageLabel.setBounds(0, 0, 380, 592);
container.add(btn1);
container.add(btn2);
container.add(imageLabel);
setSize(380,592);
setVisible(true);
}
public static void main(String[] args) {
new Main();
}
}
import java.awt.Color;
import java.awt.Container;
import java.awt.Image
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main2 extends JFrame{
ImageIcon image
JLabel imageLabel
public Main2() {
image = new ImageIcon("image/배경.gif");
imageLabel = new JLabel(image);
setTitle("메뉴");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
container.setLayout(null);
//container.setBackground(new Color(112,222,195)); // new Color(112,222,195)
JButton btn1 = new JButton("한식");
JButton btn2 = new JButton("중식");
JButton btn3 = new JButton("일식");
btn1.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
Menu1 menu1 = new Menu1();
}
});
btn1.setBounds(100,100,200,60);
btn1.setBackground(new Color(112,222,195));
btn1.setForeground(Color.white);
btn2.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
Menu2 menu2 = new Menu2();
}
});
btn2.setBounds(100,250,200,60);
btn2.setBackground(new Color(112,222,195));
btn2.setForeground(Color.white);
btn3.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
Menu3 menu3 = new Menu3();
}
});
btn3.setBounds(100,400,200,60);
btn3.setBackground(new Color(112,222,195));
btn3.setForeground(Color.white);
imageLabel.setBounds(0, 0, 380, 592);
container.add(btn1);
container.add(btn2);
container.add(btn3);
container.add(imageLabel);
setSize(380,592);
setVisible(true);
}
public static void main(String[] args) {
new Main2();
}
}
import java.awt.Color
import java.awt.Container;
import java.awt.Image
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Menu1 extends JFrame{
ImageIcon image
JLabel imageLabel
public Menu1() {
image = new ImageIcon("image/한식.gif");
imageLabel = new JLabel(image);
setTitle("한식");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
container.setLayout(null);
//container.setBackground(new Color(112,222,195)); // new Color(112,222,195)
imageLabel.setBounds(0, 0, 380, 592);
container.add(imageLabel);
setSize(380,592);
setVisible(true);
}
public static void main(String[] args) {
new Menu1();
}
}
import java.awt.Color
import java.awt.Container;
import java.awt.Image
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import javax.swing.ImageIcon
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Menu2 extends JFrame{
ImageIcon image
JLabel imageLabel
public Menu2() {
image = new ImageIcon("image/중식.gif");
imageLabel = new JLabel(image);
setTitle("중식");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
container.setLayout(null);
//container.setBackground(new Color(112,222,195)); // new Color(112,222,195)
imageLabel.setBounds(0, 0, 380, 592);
container.add(imageLabel);
setSize(380,592);
setVisible(true);
}
public static void main(String[] args) {
new Menu2();
}
}
import java.awt.Color
import java.awt.Container;
import java.awt.Image
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Menu3 extends JFrame{
ImageIcon image
JLabel imageLabel
public Menu3() {
image = new ImageIcon("image/일식.gif");
imageLabel = new JLabel(image);
setTitle("일식");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
container.setLayout(null);
//container.setBackground(new Color(112,222,195)); // new Color(112,222,195)
imageLabel.setBounds(0, 0, 380, 592);
container.add(imageLabel);
setSize(380,592);
setVisible(true);
}
public static void main(String[] args) {
new Menu3();
}
}
<51호관 삼각이의 탈출>
import java.applet.AudioClip
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.Array
import java.net.URL
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JApplet
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane
import javax.swing.JPanel;
import javax.swing.Timer;
public class MyFrame {
JFrame frame=new JFrame();// 전체GUI를담을프레임에대한레퍼런스
final int MARGIN = 20; // 그림에얼마범위에들어왔을때충돌로결정할것인지의값(작은그림)
final int ALL_WIDTH = 650; // 전체frame의폭600,400 사용하기위해
final int ALL_HEIGHT = 418; // 전체frame의높이418
final int M_WIDTH=715; //596 *1.3=780 *1.2=715 *1.15 = 685
final int M_HEIGHT=380;//320 320*1.3 =417 320*1.2= 384 320*1.15 = 368
소리)
SoundPlayer LobbyMusic = new SoundPlayer("LobbyMusic.wav");
SoundPlayer gameMusic = new SoundPlayer("gameMusic.wav");
SoundPlayer gameMusic2 = new SoundPlayer("gameMusic2.wav");
SoundPlayer jumpMusic = new SoundPlayer("jump2.wav");
SoundPlayer closeMusic = new SoundPlayer("CloseMusic.wav");
SoundPlayer charHit = new SoundPlayer("explode_1.wav");
boolean lastmusicbol=true
버튼)
JButton startButtonImage = new JButton(new ImageIcon("src/게임시작버튼_보통.gif"));
ImageIcon endbutton = new ImageIcon("src/endbuttons1.png");//끝내기, 계속하기,
ImageIcon endbutton_end = new ImageIcon("src/endbuttons2.png");
ImageIcon GameEndResult = new ImageIcon("src/게임결과.jpg");
ImageIcon musicSwitchOn = new ImageIcon("src/button/switch_on.png");
ImageIcon musicSwitchOff = new ImageIcon("src/button/switch_off.png");
JButton optionButtonImage = new JButton(new ImageIcon("src/endbuttons2.png"));
JButton endButtonImage = new JButton(new String("재도전"));
JButton endButtonImage2 = new JButton(new String("나가기"));
캐릭터 행동)
boolean run=true;
boolean jump=false;
boolean Djump = false;
boolean slide = false;
boolean hall = false;
boolean Jelllllly = false;
boolean firstRound = true;
boolean secondRound = false;
boolean collideTurn = false; // 장애물 부딪힘 여부;
boolean collideOnce = true;
boolean music = true;
boolean Esc = false;
boolean musicOnOff =true;
boolean clickedStop=false;
패널)
JPanel controlPanel=new JPanel(); // 게임 컨트롤과 시간, 사용자 디스플레이가
들어갈 패널
JLayeredPane lp = new JLayeredPane(); // 화면을 여러장 겹치기 위한 PaneL 레이어
JPanel coverPanel; // 초기화면이 나타날 패널
GamePanel gamepanel=new GamePanel();
StartPanel startpanel = new StartPanel();
endPanel endpanel = new endPanel();
초기화면 및 배경)
PosImageIcon StartImage = new PosImageIcon("src/IMAGE/StartImage.jpg",0,0,ALL_WIDTH,
ALL_HEIGHT,630);
ImageIcon Back_1_1 = new ImageIcon("src/IMAGE/firstRound_1.jpg"); // 마지 넓이
ImageIcon Back_1_2 = new ImageIcon("src/IMAGE/firstRound_2.png"); //863, 162
ImageIcon Back_2_1 = new ImageIcon("src/IMAGE/2.검은숲길 배경.png");
ImageIcon Back_2_2 = new ImageIcon("src/IMAGE/2.검은숲길 귀신효과_2.png");
ImageIcon Back_2_3 = new ImageIcon("src/IMAGE/2.검은숲길 귀신효과_1.png");
ImageIcon Back_2_4 = new ImageIcon("src/IMAGE/2.검은숲길 귀신효과_3불빛.png");
ImageIcon BackStop = new ImageIcon("src/일시정지 불투명.png");
ImageIcon SlideButton0 = new ImageIcon("src/IMAGE/SlideButton_0.png");
ImageIcon SlideButton1 = new ImageIcon("src/IMAGE/SlideButton_1.png");
ImageIcon JumpButton0 = new ImageIcon("src/IMAGE/JumpButton_0.png");
ImageIcon JumpButton1 = new ImageIcon("src/IMAGE/JumpButton_1.png");
PosImageIcon startButton = new PosImageIcon("src/게임시작버튼_보통.gif", 0, 0, 100, 50);
PosImageIcon startButtonPressed = new
PosImageIcon("src/게임시작버튼_클릭.gif",0,0,100,50);
기타)
public class CookieListener implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
if(run==true){ // 스레드? 이용한 캐릭터 움직임 사용
Cokiecnt++;
if (Cokiecnt == 4)
Cokiecnt =0;
}
if(jump==true){ // 3_6 // 가속도 올라가는 속도차이
if(Cokiecnt2==1)
CharPy-=20;
else if(Cokiecnt2==2)
CharPy-=8;
else if (Cokiecnt2==3)
CharPy-=5;
else if(Cokiecnt2==4)
CharPy-=3;
else if (Cokiecnt2==5)
CharPy-=1;
else if(Cokiecnt2==6)
CharPy+=4;
else if(Cokiecnt2==7)
CharPy+=8;
else if (Cokiecnt2==8)
CharPy+=15;
else if(Cokiecnt2==9)
CharPy+=10;
Cokiecnt++;
if(Cokiecnt==3){
Cokiecnt2++;
if(Cokiecnt2==10){
Cokiecnt=3;
}
else
Cokiecnt=0;
}
else if(Cokiecnt>4){
Cokiecnt=0;
Cokiecnt2=0;
jump=false;
run=true;
CharPy=218;
}
}
if(Djump==true){
}
if(slide==true){
Cokiecnt++;
if (Cokiecnt ==2)
Cokiecnt =0;
}
frame.repaint();
frame.setVisible(true);
}
}
public class StartPanel extends JPanel{
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g.clearRect(0,0,WIDTH,HEIGHT);
g.drawImage(StartImage.getImage(), 0,0, 650, 400, this); // 전체 프레임
크기: 600,400
startButtonImage.setBounds(220,322,200,55); // 게임시작버튼
startButtonImage.setOpaque(false);
startButtonImage.setContentAreaFilled(false);
startButtonImage.setBorderPainted(false);
startpanel.add(startButtonImage);
startButtonImage.addMouseListener(new StartListener());
}
}
class GamePanel extends JPanel{
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
clickedStop=false;
// 1탄 배경1
if(firstRound){
g.drawImage(Back_1_1.getImage(), backX1,0, 800,600, this);
g.drawImage(Back_1_1.getImage(), backX1_2,0, 800,600, this);
if(backX1<=-800){ // 배경이 일정부분이상 넘어가면 다시그려준다.
backCnt1++;
backX1=800;
}
if(backX1_2<=-800)
backX1_2=800;
//1탄 배경2
g.drawImage(Back_1_2.getImage(), backX2,210, 863,170, this);
g.drawImage(Back_1_2.getImage(), backX2_2,210, 863,170, this);
if(backX2<=-863){
backX2=863;
}
if(backX2<=-863)
backX2_2=863;
}
if(secondRound){
if(music){
if(musicOnOff){
gameMusic.stopPlayer();
gameMusic2.startPlay();
}
music=false;
}
g.drawImage(Back_2_1.getImage(), backX10,0, 650,320, this);
g.drawImage(Back_2_1.getImage(), backX10_2,0,650,320, this);
if(backX10<=-650)
backX10=650;
if(backX10_2<=-650)
backX10_2=650;
g.drawImage(Back_2_2.getImage(), backX20,0, 750,320, this);
g.drawImage(Back_2_2.getImage(), backX20_2,0, 750,320, this);
if(backX20<=-750)
backX20=750;
if(backX20_2<=-750)
backX20_2=750;
g.drawImage(Back_2_3.getImage(), backX3,0, 750,320, this);
g.drawImage(Back_2_3.getImage(), backX3_1,0, 750,320, this);
if(backX3<=-750)
backX3=750;
if(backX3_1<=-750)
backX3_1=750;
g.drawImage(Back_2_4.getImage(), backX4,150, 800,170, this);
g.drawImage(Back_2_4.getImage(), backX4_1,150, 800,170, this);
if(backX4<=-790)
backX4=790;
if(backX4_1<=-790)
backX4_1=790;
}
//****************시작리스너****************
class StartListener implements MouseListener {
public void actionPerformed(ActionEvent e) {
}
public void mouseClicked(MouseEvent e) {
startButtonImage.setIcon(startButton);
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
startButtonImage.setIcon(startButtonPressed);
}
public void mouseReleased(MouseEvent e) {
lp.setLayer(gamepanel, 3);// gamePanel 이앞으로나오게함
LobbyMusic.stopPlayer();
gameMusic.startPlay();
gamepanel.setFocusable(true);// gamePanel이포커싱될수있게함
gamepanel.requestFocus();
frame.repaint();
goGround.start();
goChar.start();
goTime.start();
}
}
//****************멈춤리스너****************
class StopListener implements MouseListener{
public void mouseClicked(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
if(clickedStop=true){
int whatX = arg0.getX();
int whatY = arg0.getY();
if(whatX>=260&&whatX<=420){
if(whatY>=120&&whatY<175){ // 계속좌표
startall();
Esc=false
}
if(whatY>=190&&whatY<235){ // 나가기좌표
lp.setLayer(endpanel, 5);// gamePanel 이앞으로나오게함
endpanel.setFocusable(true);// gamePanel이포커싱될수있게함
endpanel.requestFocus();
stopAll();
}
//frame.setVisible(false);
// 이게아니라스코어점수나타내기
}
if(whatY>=250&&whatY<290){
if(whatX>=280&&whatX<340){ // on좌표
musicOnOff=true
frame.repaint();
}
if(whatX>340&&whatX<=400){
musicOnOff=false
frame.repaint();
}
}
}
}
public void mouseReleased(MouseEvent arg0) {
}
}

Java project

  • 1.
    비주얼 프로그래밍 (비주얼 프로그래밍프로젝트 보고서) “창원대 오늘 뭐 먹지?” 담당교수 : 박동규 교수님 목 차 I. 기획 동기 II. 프로그램 구성 III. 소스코드 ( 기능설명 ) 8조 20153029 임지현 20173025 이혜정
  • 2.
    I. 기획 동기  많은대학생들이 종강 날만을 바라보며 끊임없는 과제와 짜인 시간표에 맞추어 지루하고 반복된 일상을 보내고 있습니다.   대부분의 학생들은 그 일상에 대해서 작게나마 보상심리를 갖고 있습니다. 어떤 학생은 자기 전에  음악을 듣기도 하고, 어떤 학생은 독서를 하기도 합니다. 또 큰 의미는 없지만 잠이 들기 전까지  스마트 폰을 보곤 합니다.  그중 많은 학생들이 맛있는 식사를 하는 것만으로도 지루하고 반복된 일상의 원동력을 얻는 것 같다는 생각이 들었습니다. 강의가 끝나고 나면 항상 "뭐 먹을래?" , "오늘 뭐 먹지?" 하는 이야기 가 자주 들리기도 했고, 항상 식사를 결정할 때 다수의 기호를 고려한 나머지 결정하는 시간이 오 래 걸리는 것을 보았습니다.  이런 생각을 갖고 있는 찰나에 자바 프로그래밍을 이용한 프로그래밍을 만들 기회가 생겼고, 이 와 관련된 의미 있는 프로젝트를 만들고 싶었습니다. 그래서 저희는 간단한 흥미 유발 게임과 식단 표를 한식, 중식, 일식으로 나눠서 만들어보게 되었습니다.  II. 프로그램 구성 창원대 오늘 뭐 먹지? = 미니게임 + 메뉴 미니게임을 누르면 ‘51호관 삼각이의 탈출’ 미니게임이 실행됩니다.
  • 3.
    <실행> 시간이 지날수록 체력이감소하고, 장애물에 부딪힐 때도 감소합니다. <조작법> ↑방향키를 누르면 점프가 됩니다.
  • 4.
    ↓ 방향키를 누르면슬라이딩이 됩니다. ESC 키를 누르면 계속하기, 나가기, 소리 (ON / OFF) 기능 버튼이 실행됩니다. 게임이 종료되면 먹은 획득삼각과 게임시간을 합쳐서 총 점수가 나옵니다. 그 후 재도전 또는 나가기 버튼을 누르시면 됩니다.
  • 5.
    메뉴를 누르면 ‘메뉴판’창이 뜹니다. <메뉴> 한식, 중식, 일식 버튼이 실행됩니다.
  • 6.
    <한식, 중식, 일식> 각각의한식, 중식, 일식 버튼을 누르면 각각의 메뉴창이 실행됩니다. III. 소스코드 <메인화면> import java.awt.Color; import java.awt.Container; import java.awt.Image import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Main extends JFrame{ ImageIcon image JLabel imageLabel public Main() { image = new ImageIcon("image/메인.gif"); imageLabel = new JLabel(image); setTitle("창원대오늘뭐먹지); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • 7.
    Container container =getContentPane(); container.setLayout(null); //container.setBackground(new Color(112,222,195)); // new Color(112,222,195) JButton btn1 = new JButton("미니게임"); JButton btn2 = new JButton("메뉴"); btn1.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { MyFrame myframe = new MyFrame(); myframe.go(); } }); btn1.setBounds(25,450,150,30); btn1.setBackground(new Color(112,222,195)); btn1.setForeground(Color.white); btn2.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Main2 main2 = new Main2(); } }); btn2.setBounds(200,450,150,30); btn2.setBackground(new Color(112,222,195)); btn2.setForeground(Color.white); imageLabel.setBounds(0, 0, 380, 592); container.add(btn1); container.add(btn2); container.add(imageLabel); setSize(380,592); setVisible(true); } public static void main(String[] args) { new Main(); } } import java.awt.Color; import java.awt.Container; import java.awt.Image import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Main2 extends JFrame{ ImageIcon image JLabel imageLabel public Main2() { image = new ImageIcon("image/배경.gif"); imageLabel = new JLabel(image); setTitle("메뉴"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(null); //container.setBackground(new Color(112,222,195)); // new Color(112,222,195) JButton btn1 = new JButton("한식"); JButton btn2 = new JButton("중식");
  • 8.
    JButton btn3 =new JButton("일식"); btn1.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Menu1 menu1 = new Menu1(); } }); btn1.setBounds(100,100,200,60); btn1.setBackground(new Color(112,222,195)); btn1.setForeground(Color.white); btn2.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Menu2 menu2 = new Menu2(); } }); btn2.setBounds(100,250,200,60); btn2.setBackground(new Color(112,222,195)); btn2.setForeground(Color.white); btn3.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Menu3 menu3 = new Menu3(); } }); btn3.setBounds(100,400,200,60); btn3.setBackground(new Color(112,222,195)); btn3.setForeground(Color.white); imageLabel.setBounds(0, 0, 380, 592); container.add(btn1); container.add(btn2); container.add(btn3); container.add(imageLabel); setSize(380,592); setVisible(true); } public static void main(String[] args) { new Main2(); } } import java.awt.Color import java.awt.Container; import java.awt.Image import java.awt.event.MouseAdapter import java.awt.event.MouseEvent import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class Menu1 extends JFrame{ ImageIcon image JLabel imageLabel public Menu1() { image = new ImageIcon("image/한식.gif"); imageLabel = new JLabel(image); setTitle("한식"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • 9.
    Container container =getContentPane(); container.setLayout(null); //container.setBackground(new Color(112,222,195)); // new Color(112,222,195) imageLabel.setBounds(0, 0, 380, 592); container.add(imageLabel); setSize(380,592); setVisible(true); } public static void main(String[] args) { new Menu1(); } } import java.awt.Color import java.awt.Container; import java.awt.Image import java.awt.event.MouseAdapter import java.awt.event.MouseEvent import javax.swing.ImageIcon import javax.swing.JFrame; import javax.swing.JLabel; public class Menu2 extends JFrame{ ImageIcon image JLabel imageLabel public Menu2() { image = new ImageIcon("image/중식.gif"); imageLabel = new JLabel(image); setTitle("중식"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(null); //container.setBackground(new Color(112,222,195)); // new Color(112,222,195) imageLabel.setBounds(0, 0, 380, 592); container.add(imageLabel); setSize(380,592); setVisible(true); } public static void main(String[] args) { new Menu2(); } } import java.awt.Color
  • 10.
    import java.awt.Container; import java.awt.Image importjava.awt.event.MouseAdapter import java.awt.event.MouseEvent import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class Menu3 extends JFrame{ ImageIcon image JLabel imageLabel public Menu3() { image = new ImageIcon("image/일식.gif"); imageLabel = new JLabel(image); setTitle("일식"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(null); //container.setBackground(new Color(112,222,195)); // new Color(112,222,195) imageLabel.setBounds(0, 0, 380, 592); container.add(imageLabel); setSize(380,592); setVisible(true); } public static void main(String[] args) { new Menu3(); } } <51호관 삼각이의 탈출> import java.applet.AudioClip import java.awt.*; import java.awt.event.*; import java.lang.reflect.Array import java.net.URL import java.util.ArrayList; import javax.swing.ImageIcon; import javax.swing.JApplet import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel
  • 11.
    import javax.swing.JLayeredPane; import javax.swing.JOptionPane importjavax.swing.JPanel; import javax.swing.Timer; public class MyFrame { JFrame frame=new JFrame();// 전체GUI를담을프레임에대한레퍼런스 final int MARGIN = 20; // 그림에얼마범위에들어왔을때충돌로결정할것인지의값(작은그림) final int ALL_WIDTH = 650; // 전체frame의폭600,400 사용하기위해 final int ALL_HEIGHT = 418; // 전체frame의높이418 final int M_WIDTH=715; //596 *1.3=780 *1.2=715 *1.15 = 685 final int M_HEIGHT=380;//320 320*1.3 =417 320*1.2= 384 320*1.15 = 368 소리) SoundPlayer LobbyMusic = new SoundPlayer("LobbyMusic.wav"); SoundPlayer gameMusic = new SoundPlayer("gameMusic.wav"); SoundPlayer gameMusic2 = new SoundPlayer("gameMusic2.wav"); SoundPlayer jumpMusic = new SoundPlayer("jump2.wav"); SoundPlayer closeMusic = new SoundPlayer("CloseMusic.wav"); SoundPlayer charHit = new SoundPlayer("explode_1.wav"); boolean lastmusicbol=true 버튼) JButton startButtonImage = new JButton(new ImageIcon("src/게임시작버튼_보통.gif")); ImageIcon endbutton = new ImageIcon("src/endbuttons1.png");//끝내기, 계속하기, ImageIcon endbutton_end = new ImageIcon("src/endbuttons2.png"); ImageIcon GameEndResult = new ImageIcon("src/게임결과.jpg"); ImageIcon musicSwitchOn = new ImageIcon("src/button/switch_on.png"); ImageIcon musicSwitchOff = new ImageIcon("src/button/switch_off.png"); JButton optionButtonImage = new JButton(new ImageIcon("src/endbuttons2.png")); JButton endButtonImage = new JButton(new String("재도전")); JButton endButtonImage2 = new JButton(new String("나가기")); 캐릭터 행동) boolean run=true; boolean jump=false; boolean Djump = false; boolean slide = false; boolean hall = false; boolean Jelllllly = false; boolean firstRound = true; boolean secondRound = false; boolean collideTurn = false; // 장애물 부딪힘 여부; boolean collideOnce = true; boolean music = true; boolean Esc = false; boolean musicOnOff =true; boolean clickedStop=false; 패널) JPanel controlPanel=new JPanel(); // 게임 컨트롤과 시간, 사용자 디스플레이가 들어갈 패널 JLayeredPane lp = new JLayeredPane(); // 화면을 여러장 겹치기 위한 PaneL 레이어 JPanel coverPanel; // 초기화면이 나타날 패널 GamePanel gamepanel=new GamePanel(); StartPanel startpanel = new StartPanel(); endPanel endpanel = new endPanel(); 초기화면 및 배경)
  • 12.
    PosImageIcon StartImage =new PosImageIcon("src/IMAGE/StartImage.jpg",0,0,ALL_WIDTH, ALL_HEIGHT,630); ImageIcon Back_1_1 = new ImageIcon("src/IMAGE/firstRound_1.jpg"); // 마지 넓이 ImageIcon Back_1_2 = new ImageIcon("src/IMAGE/firstRound_2.png"); //863, 162 ImageIcon Back_2_1 = new ImageIcon("src/IMAGE/2.검은숲길 배경.png"); ImageIcon Back_2_2 = new ImageIcon("src/IMAGE/2.검은숲길 귀신효과_2.png"); ImageIcon Back_2_3 = new ImageIcon("src/IMAGE/2.검은숲길 귀신효과_1.png"); ImageIcon Back_2_4 = new ImageIcon("src/IMAGE/2.검은숲길 귀신효과_3불빛.png"); ImageIcon BackStop = new ImageIcon("src/일시정지 불투명.png"); ImageIcon SlideButton0 = new ImageIcon("src/IMAGE/SlideButton_0.png"); ImageIcon SlideButton1 = new ImageIcon("src/IMAGE/SlideButton_1.png"); ImageIcon JumpButton0 = new ImageIcon("src/IMAGE/JumpButton_0.png"); ImageIcon JumpButton1 = new ImageIcon("src/IMAGE/JumpButton_1.png"); PosImageIcon startButton = new PosImageIcon("src/게임시작버튼_보통.gif", 0, 0, 100, 50); PosImageIcon startButtonPressed = new PosImageIcon("src/게임시작버튼_클릭.gif",0,0,100,50); 기타) public class CookieListener implements ActionListener { public void actionPerformed(ActionEvent arg0) { if(run==true){ // 스레드? 이용한 캐릭터 움직임 사용 Cokiecnt++; if (Cokiecnt == 4) Cokiecnt =0; } if(jump==true){ // 3_6 // 가속도 올라가는 속도차이 if(Cokiecnt2==1) CharPy-=20; else if(Cokiecnt2==2) CharPy-=8; else if (Cokiecnt2==3) CharPy-=5; else if(Cokiecnt2==4) CharPy-=3; else if (Cokiecnt2==5) CharPy-=1; else if(Cokiecnt2==6) CharPy+=4; else if(Cokiecnt2==7) CharPy+=8; else if (Cokiecnt2==8) CharPy+=15; else if(Cokiecnt2==9) CharPy+=10; Cokiecnt++; if(Cokiecnt==3){ Cokiecnt2++; if(Cokiecnt2==10){ Cokiecnt=3; } else Cokiecnt=0; } else if(Cokiecnt>4){ Cokiecnt=0; Cokiecnt2=0; jump=false; run=true; CharPy=218; }
  • 13.
    } if(Djump==true){ } if(slide==true){ Cokiecnt++; if (Cokiecnt ==2) Cokiecnt=0; } frame.repaint(); frame.setVisible(true); } } public class StartPanel extends JPanel{ public void paintComponent(Graphics g){ Graphics2D g2d = (Graphics2D)g; g.clearRect(0,0,WIDTH,HEIGHT); g.drawImage(StartImage.getImage(), 0,0, 650, 400, this); // 전체 프레임 크기: 600,400 startButtonImage.setBounds(220,322,200,55); // 게임시작버튼 startButtonImage.setOpaque(false); startButtonImage.setContentAreaFilled(false); startButtonImage.setBorderPainted(false); startpanel.add(startButtonImage); startButtonImage.addMouseListener(new StartListener()); } } class GamePanel extends JPanel{ public void paintComponent(Graphics g){ Graphics2D g2d = (Graphics2D) g; clickedStop=false; // 1탄 배경1 if(firstRound){ g.drawImage(Back_1_1.getImage(), backX1,0, 800,600, this); g.drawImage(Back_1_1.getImage(), backX1_2,0, 800,600, this); if(backX1<=-800){ // 배경이 일정부분이상 넘어가면 다시그려준다. backCnt1++; backX1=800; } if(backX1_2<=-800) backX1_2=800; //1탄 배경2 g.drawImage(Back_1_2.getImage(), backX2,210, 863,170, this); g.drawImage(Back_1_2.getImage(), backX2_2,210, 863,170, this); if(backX2<=-863){ backX2=863; } if(backX2<=-863) backX2_2=863;
  • 14.
    } if(secondRound){ if(music){ if(musicOnOff){ gameMusic.stopPlayer(); gameMusic2.startPlay(); } music=false; } g.drawImage(Back_2_1.getImage(), backX10,0, 650,320,this); g.drawImage(Back_2_1.getImage(), backX10_2,0,650,320, this); if(backX10<=-650) backX10=650; if(backX10_2<=-650) backX10_2=650; g.drawImage(Back_2_2.getImage(), backX20,0, 750,320, this); g.drawImage(Back_2_2.getImage(), backX20_2,0, 750,320, this); if(backX20<=-750) backX20=750; if(backX20_2<=-750) backX20_2=750; g.drawImage(Back_2_3.getImage(), backX3,0, 750,320, this); g.drawImage(Back_2_3.getImage(), backX3_1,0, 750,320, this); if(backX3<=-750) backX3=750; if(backX3_1<=-750) backX3_1=750; g.drawImage(Back_2_4.getImage(), backX4,150, 800,170, this); g.drawImage(Back_2_4.getImage(), backX4_1,150, 800,170, this); if(backX4<=-790) backX4=790; if(backX4_1<=-790) backX4_1=790; } //****************시작리스너**************** class StartListener implements MouseListener { public void actionPerformed(ActionEvent e) { } public void mouseClicked(MouseEvent e) { startButtonImage.setIcon(startButton); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { startButtonImage.setIcon(startButtonPressed); } public void mouseReleased(MouseEvent e) { lp.setLayer(gamepanel, 3);// gamePanel 이앞으로나오게함 LobbyMusic.stopPlayer(); gameMusic.startPlay(); gamepanel.setFocusable(true);// gamePanel이포커싱될수있게함 gamepanel.requestFocus(); frame.repaint(); goGround.start();
  • 15.
    goChar.start(); goTime.start(); } } //****************멈춤리스너**************** class StopListener implementsMouseListener{ public void mouseClicked(MouseEvent arg0) { } public void mouseEntered(MouseEvent arg0) { } public void mouseExited(MouseEvent arg0) { } public void mousePressed(MouseEvent arg0) { if(clickedStop=true){ int whatX = arg0.getX(); int whatY = arg0.getY(); if(whatX>=260&&whatX<=420){ if(whatY>=120&&whatY<175){ // 계속좌표 startall(); Esc=false } if(whatY>=190&&whatY<235){ // 나가기좌표 lp.setLayer(endpanel, 5);// gamePanel 이앞으로나오게함 endpanel.setFocusable(true);// gamePanel이포커싱될수있게함 endpanel.requestFocus(); stopAll(); } //frame.setVisible(false); // 이게아니라스코어점수나타내기 } if(whatY>=250&&whatY<290){ if(whatX>=280&&whatX<340){ // on좌표 musicOnOff=true frame.repaint(); } if(whatX>340&&whatX<=400){ musicOnOff=false frame.repaint(); } } } } public void mouseReleased(MouseEvent arg0) { } }